All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.snappydata.thrift.CatalogMetadataDetails Maven / Gradle / Ivy

There is a newer version: 1.6.7
Show newest version
/**
 * Autogenerated by Thrift Compiler (0.9.3)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package io.snappydata.thrift;

import org.apache.thrift.scheme.IScheme;
import org.apache.thrift.scheme.SchemeFactory;
import org.apache.thrift.scheme.StandardScheme;

import org.apache.thrift.scheme.TupleScheme;
import org.apache.thrift.protocol.TTupleProtocol;
import org.apache.thrift.protocol.TProtocolException;
import org.apache.thrift.EncodingUtils;
import org.apache.thrift.TException;
import org.apache.thrift.async.AsyncMethodCallback;
import org.apache.thrift.server.AbstractNonblockingServer.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import javax.annotation.Generated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2018-12-10")
public class CatalogMetadataDetails implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CatalogMetadataDetails");

  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)1);
  private static final org.apache.thrift.protocol.TField PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("properties", org.apache.thrift.protocol.TType.LIST, (short)2);
  private static final org.apache.thrift.protocol.TField NEW_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("newProperties", org.apache.thrift.protocol.TType.LIST, (short)3);
  private static final org.apache.thrift.protocol.TField CATALOG_SCHEMA_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogSchemaVersion", org.apache.thrift.protocol.TType.I64, (short)4);
  private static final org.apache.thrift.protocol.TField EXISTS_FIELD_DESC = new org.apache.thrift.protocol.TField("exists", org.apache.thrift.protocol.TType.BOOL, (short)5);
  private static final org.apache.thrift.protocol.TField OTHER_FLAGS_FIELD_DESC = new org.apache.thrift.protocol.TField("otherFlags", org.apache.thrift.protocol.TType.LIST, (short)6);
  private static final org.apache.thrift.protocol.TField CATALOG_SCHEMA_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogSchema", org.apache.thrift.protocol.TType.STRUCT, (short)7);
  private static final org.apache.thrift.protocol.TField CATALOG_TABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogTable", org.apache.thrift.protocol.TType.STRUCT, (short)8);
  private static final org.apache.thrift.protocol.TField CATALOG_FUNCTION_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogFunction", org.apache.thrift.protocol.TType.STRUCT, (short)9);
  private static final org.apache.thrift.protocol.TField CATALOG_PARTITIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogPartitions", org.apache.thrift.protocol.TType.LIST, (short)10);

  private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>();
  static {
    schemes.put(StandardScheme.class, new CatalogMetadataDetailsStandardSchemeFactory());
    schemes.put(TupleScheme.class, new CatalogMetadataDetailsTupleSchemeFactory());
  }

  public List names; // optional
  public List> properties; // optional
  public List> newProperties; // optional
  public long catalogSchemaVersion; // optional
  public boolean exists; // optional
  public List otherFlags; // optional
  public CatalogSchemaObject catalogSchema; // optional
  public CatalogTableObject catalogTable; // optional
  public CatalogFunctionObject catalogFunction; // optional
  public List catalogPartitions; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    NAMES((short)1, "names"),
    PROPERTIES((short)2, "properties"),
    NEW_PROPERTIES((short)3, "newProperties"),
    CATALOG_SCHEMA_VERSION((short)4, "catalogSchemaVersion"),
    EXISTS((short)5, "exists"),
    OTHER_FLAGS((short)6, "otherFlags"),
    CATALOG_SCHEMA((short)7, "catalogSchema"),
    CATALOG_TABLE((short)8, "catalogTable"),
    CATALOG_FUNCTION((short)9, "catalogFunction"),
    CATALOG_PARTITIONS((short)10, "catalogPartitions");

    private static final Map byName = new HashMap();

    static {
      for (_Fields field : EnumSet.allOf(_Fields.class)) {
        byName.put(field.getFieldName(), field);
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // NAMES
          return NAMES;
        case 2: // PROPERTIES
          return PROPERTIES;
        case 3: // NEW_PROPERTIES
          return NEW_PROPERTIES;
        case 4: // CATALOG_SCHEMA_VERSION
          return CATALOG_SCHEMA_VERSION;
        case 5: // EXISTS
          return EXISTS;
        case 6: // OTHER_FLAGS
          return OTHER_FLAGS;
        case 7: // CATALOG_SCHEMA
          return CATALOG_SCHEMA;
        case 8: // CATALOG_TABLE
          return CATALOG_TABLE;
        case 9: // CATALOG_FUNCTION
          return CATALOG_FUNCTION;
        case 10: // CATALOG_PARTITIONS
          return CATALOG_PARTITIONS;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, throwing an exception
     * if it is not found.
     */
    public static _Fields findByThriftIdOrThrow(int fieldId) {
      _Fields fields = findByThriftId(fieldId);
      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    public static _Fields findByName(String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final String _fieldName;

    _Fields(short thriftId, String fieldName) {
      _thriftId = thriftId;
      _fieldName = fieldName;
    }

    public short getThriftFieldId() {
      return _thriftId;
    }

    public String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __CATALOGSCHEMAVERSION_ISSET_ID = 0;
  private static final int __EXISTS_ISSET_ID = 1;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.NAMES,_Fields.PROPERTIES,_Fields.NEW_PROPERTIES,_Fields.CATALOG_SCHEMA_VERSION,_Fields.EXISTS,_Fields.OTHER_FLAGS,_Fields.CATALOG_SCHEMA,_Fields.CATALOG_TABLE,_Fields.CATALOG_FUNCTION,_Fields.CATALOG_PARTITIONS};
  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.NAMES, new org.apache.thrift.meta_data.FieldMetaData("names", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        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.PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            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.NEW_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("newProperties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            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.CATALOG_SCHEMA_VERSION, new org.apache.thrift.meta_data.FieldMetaData("catalogSchemaVersion", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.EXISTS, new org.apache.thrift.meta_data.FieldMetaData("exists", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.OTHER_FLAGS, new org.apache.thrift.meta_data.FieldMetaData("otherFlags", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        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.I32))));
    tmpMap.put(_Fields.CATALOG_SCHEMA, new org.apache.thrift.meta_data.FieldMetaData("catalogSchema", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CatalogSchemaObject.class)));
    tmpMap.put(_Fields.CATALOG_TABLE, new org.apache.thrift.meta_data.FieldMetaData("catalogTable", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CatalogTableObject.class)));
    tmpMap.put(_Fields.CATALOG_FUNCTION, new org.apache.thrift.meta_data.FieldMetaData("catalogFunction", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CatalogFunctionObject.class)));
    tmpMap.put(_Fields.CATALOG_PARTITIONS, new org.apache.thrift.meta_data.FieldMetaData("catalogPartitions", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        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, CatalogPartitionObject.class))));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CatalogMetadataDetails.class, metaDataMap);
  }

  public CatalogMetadataDetails() {
  }

  /**
   * Performs a deep copy on other.
   */
  public CatalogMetadataDetails(CatalogMetadataDetails other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetNames()) {
      List __this__names = new ArrayList(other.names);
      this.names = __this__names;
    }
    if (other.isSetProperties()) {
      List> __this__properties = new ArrayList>(other.properties.size());
      for (Map other_element : other.properties) {
        Map __this__properties_copy = new HashMap(other_element);
        __this__properties.add(__this__properties_copy);
      }
      this.properties = __this__properties;
    }
    if (other.isSetNewProperties()) {
      List> __this__newProperties = new ArrayList>(other.newProperties.size());
      for (Map other_element : other.newProperties) {
        Map __this__newProperties_copy = new HashMap(other_element);
        __this__newProperties.add(__this__newProperties_copy);
      }
      this.newProperties = __this__newProperties;
    }
    this.catalogSchemaVersion = other.catalogSchemaVersion;
    this.exists = other.exists;
    if (other.isSetOtherFlags()) {
      List __this__otherFlags = new ArrayList(other.otherFlags);
      this.otherFlags = __this__otherFlags;
    }
    if (other.isSetCatalogSchema()) {
      this.catalogSchema = new CatalogSchemaObject(other.catalogSchema);
    }
    if (other.isSetCatalogTable()) {
      this.catalogTable = new CatalogTableObject(other.catalogTable);
    }
    if (other.isSetCatalogFunction()) {
      this.catalogFunction = new CatalogFunctionObject(other.catalogFunction);
    }
    if (other.isSetCatalogPartitions()) {
      List __this__catalogPartitions = new ArrayList(other.catalogPartitions.size());
      for (CatalogPartitionObject other_element : other.catalogPartitions) {
        __this__catalogPartitions.add(new CatalogPartitionObject(other_element));
      }
      this.catalogPartitions = __this__catalogPartitions;
    }
  }

  public CatalogMetadataDetails deepCopy() {
    return new CatalogMetadataDetails(this);
  }

  @Override
  public void clear() {
    this.names = null;
    this.properties = null;
    this.newProperties = null;
    setCatalogSchemaVersionIsSet(false);
    this.catalogSchemaVersion = 0;
    setExistsIsSet(false);
    this.exists = false;
    this.otherFlags = null;
    this.catalogSchema = null;
    this.catalogTable = null;
    this.catalogFunction = null;
    this.catalogPartitions = null;
  }

  public int getNamesSize() {
    return (this.names == null) ? 0 : this.names.size();
  }

  public java.util.Iterator getNamesIterator() {
    return (this.names == null) ? null : this.names.iterator();
  }

  public void addToNames(String elem) {
    if (this.names == null) {
      this.names = new ArrayList();
    }
    this.names.add(elem);
  }

  public List getNames() {
    return this.names;
  }

  public CatalogMetadataDetails setNames(List names) {
    this.names = names;
    return this;
  }

  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 int getPropertiesSize() {
    return (this.properties == null) ? 0 : this.properties.size();
  }

  public java.util.Iterator> getPropertiesIterator() {
    return (this.properties == null) ? null : this.properties.iterator();
  }

  public void addToProperties(Map elem) {
    if (this.properties == null) {
      this.properties = new ArrayList>();
    }
    this.properties.add(elem);
  }

  public List> getProperties() {
    return this.properties;
  }

  public CatalogMetadataDetails setProperties(List> properties) {
    this.properties = properties;
    return this;
  }

  public void unsetProperties() {
    this.properties = null;
  }

  /** Returns true if field properties is set (has been assigned a value) and false otherwise */
  public boolean isSetProperties() {
    return this.properties != null;
  }

  public void setPropertiesIsSet(boolean value) {
    if (!value) {
      this.properties = null;
    }
  }

  public int getNewPropertiesSize() {
    return (this.newProperties == null) ? 0 : this.newProperties.size();
  }

  public java.util.Iterator> getNewPropertiesIterator() {
    return (this.newProperties == null) ? null : this.newProperties.iterator();
  }

  public void addToNewProperties(Map elem) {
    if (this.newProperties == null) {
      this.newProperties = new ArrayList>();
    }
    this.newProperties.add(elem);
  }

  public List> getNewProperties() {
    return this.newProperties;
  }

  public CatalogMetadataDetails setNewProperties(List> newProperties) {
    this.newProperties = newProperties;
    return this;
  }

  public void unsetNewProperties() {
    this.newProperties = null;
  }

  /** Returns true if field newProperties is set (has been assigned a value) and false otherwise */
  public boolean isSetNewProperties() {
    return this.newProperties != null;
  }

  public void setNewPropertiesIsSet(boolean value) {
    if (!value) {
      this.newProperties = null;
    }
  }

  public long getCatalogSchemaVersion() {
    return this.catalogSchemaVersion;
  }

  public CatalogMetadataDetails setCatalogSchemaVersion(long catalogSchemaVersion) {
    this.catalogSchemaVersion = catalogSchemaVersion;
    setCatalogSchemaVersionIsSet(true);
    return this;
  }

  public void unsetCatalogSchemaVersion() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CATALOGSCHEMAVERSION_ISSET_ID);
  }

  /** Returns true if field catalogSchemaVersion is set (has been assigned a value) and false otherwise */
  public boolean isSetCatalogSchemaVersion() {
    return EncodingUtils.testBit(__isset_bitfield, __CATALOGSCHEMAVERSION_ISSET_ID);
  }

  public void setCatalogSchemaVersionIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CATALOGSCHEMAVERSION_ISSET_ID, value);
  }

  public boolean isExists() {
    return this.exists;
  }

  public CatalogMetadataDetails setExists(boolean exists) {
    this.exists = exists;
    setExistsIsSet(true);
    return this;
  }

  public void unsetExists() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EXISTS_ISSET_ID);
  }

  /** Returns true if field exists is set (has been assigned a value) and false otherwise */
  public boolean isSetExists() {
    return EncodingUtils.testBit(__isset_bitfield, __EXISTS_ISSET_ID);
  }

  public void setExistsIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EXISTS_ISSET_ID, value);
  }

  public int getOtherFlagsSize() {
    return (this.otherFlags == null) ? 0 : this.otherFlags.size();
  }

  public java.util.Iterator getOtherFlagsIterator() {
    return (this.otherFlags == null) ? null : this.otherFlags.iterator();
  }

  public void addToOtherFlags(int elem) {
    if (this.otherFlags == null) {
      this.otherFlags = new ArrayList();
    }
    this.otherFlags.add(elem);
  }

  public List getOtherFlags() {
    return this.otherFlags;
  }

  public CatalogMetadataDetails setOtherFlags(List otherFlags) {
    this.otherFlags = otherFlags;
    return this;
  }

  public void unsetOtherFlags() {
    this.otherFlags = null;
  }

  /** Returns true if field otherFlags is set (has been assigned a value) and false otherwise */
  public boolean isSetOtherFlags() {
    return this.otherFlags != null;
  }

  public void setOtherFlagsIsSet(boolean value) {
    if (!value) {
      this.otherFlags = null;
    }
  }

  public CatalogSchemaObject getCatalogSchema() {
    return this.catalogSchema;
  }

  public CatalogMetadataDetails setCatalogSchema(CatalogSchemaObject catalogSchema) {
    this.catalogSchema = catalogSchema;
    return this;
  }

  public void unsetCatalogSchema() {
    this.catalogSchema = null;
  }

  /** Returns true if field catalogSchema is set (has been assigned a value) and false otherwise */
  public boolean isSetCatalogSchema() {
    return this.catalogSchema != null;
  }

  public void setCatalogSchemaIsSet(boolean value) {
    if (!value) {
      this.catalogSchema = null;
    }
  }

  public CatalogTableObject getCatalogTable() {
    return this.catalogTable;
  }

  public CatalogMetadataDetails setCatalogTable(CatalogTableObject catalogTable) {
    this.catalogTable = catalogTable;
    return this;
  }

  public void unsetCatalogTable() {
    this.catalogTable = null;
  }

  /** Returns true if field catalogTable is set (has been assigned a value) and false otherwise */
  public boolean isSetCatalogTable() {
    return this.catalogTable != null;
  }

  public void setCatalogTableIsSet(boolean value) {
    if (!value) {
      this.catalogTable = null;
    }
  }

  public CatalogFunctionObject getCatalogFunction() {
    return this.catalogFunction;
  }

  public CatalogMetadataDetails setCatalogFunction(CatalogFunctionObject catalogFunction) {
    this.catalogFunction = catalogFunction;
    return this;
  }

  public void unsetCatalogFunction() {
    this.catalogFunction = null;
  }

  /** Returns true if field catalogFunction is set (has been assigned a value) and false otherwise */
  public boolean isSetCatalogFunction() {
    return this.catalogFunction != null;
  }

  public void setCatalogFunctionIsSet(boolean value) {
    if (!value) {
      this.catalogFunction = null;
    }
  }

  public int getCatalogPartitionsSize() {
    return (this.catalogPartitions == null) ? 0 : this.catalogPartitions.size();
  }

  public java.util.Iterator getCatalogPartitionsIterator() {
    return (this.catalogPartitions == null) ? null : this.catalogPartitions.iterator();
  }

  public void addToCatalogPartitions(CatalogPartitionObject elem) {
    if (this.catalogPartitions == null) {
      this.catalogPartitions = new ArrayList();
    }
    this.catalogPartitions.add(elem);
  }

  public List getCatalogPartitions() {
    return this.catalogPartitions;
  }

  public CatalogMetadataDetails setCatalogPartitions(List catalogPartitions) {
    this.catalogPartitions = catalogPartitions;
    return this;
  }

  public void unsetCatalogPartitions() {
    this.catalogPartitions = null;
  }

  /** Returns true if field catalogPartitions is set (has been assigned a value) and false otherwise */
  public boolean isSetCatalogPartitions() {
    return this.catalogPartitions != null;
  }

  public void setCatalogPartitionsIsSet(boolean value) {
    if (!value) {
      this.catalogPartitions = null;
    }
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case NAMES:
      if (value == null) {
        unsetNames();
      } else {
        setNames((List)value);
      }
      break;

    case PROPERTIES:
      if (value == null) {
        unsetProperties();
      } else {
        setProperties((List>)value);
      }
      break;

    case NEW_PROPERTIES:
      if (value == null) {
        unsetNewProperties();
      } else {
        setNewProperties((List>)value);
      }
      break;

    case CATALOG_SCHEMA_VERSION:
      if (value == null) {
        unsetCatalogSchemaVersion();
      } else {
        setCatalogSchemaVersion((Long)value);
      }
      break;

    case EXISTS:
      if (value == null) {
        unsetExists();
      } else {
        setExists((Boolean)value);
      }
      break;

    case OTHER_FLAGS:
      if (value == null) {
        unsetOtherFlags();
      } else {
        setOtherFlags((List)value);
      }
      break;

    case CATALOG_SCHEMA:
      if (value == null) {
        unsetCatalogSchema();
      } else {
        setCatalogSchema((CatalogSchemaObject)value);
      }
      break;

    case CATALOG_TABLE:
      if (value == null) {
        unsetCatalogTable();
      } else {
        setCatalogTable((CatalogTableObject)value);
      }
      break;

    case CATALOG_FUNCTION:
      if (value == null) {
        unsetCatalogFunction();
      } else {
        setCatalogFunction((CatalogFunctionObject)value);
      }
      break;

    case CATALOG_PARTITIONS:
      if (value == null) {
        unsetCatalogPartitions();
      } else {
        setCatalogPartitions((List)value);
      }
      break;

    }
  }

  public Object getFieldValue(_Fields field) {
    switch (field) {
    case NAMES:
      return getNames();

    case PROPERTIES:
      return getProperties();

    case NEW_PROPERTIES:
      return getNewProperties();

    case CATALOG_SCHEMA_VERSION:
      return getCatalogSchemaVersion();

    case EXISTS:
      return isExists();

    case OTHER_FLAGS:
      return getOtherFlags();

    case CATALOG_SCHEMA:
      return getCatalogSchema();

    case CATALOG_TABLE:
      return getCatalogTable();

    case CATALOG_FUNCTION:
      return getCatalogFunction();

    case CATALOG_PARTITIONS:
      return getCatalogPartitions();

    }
    throw new IllegalStateException();
  }

  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
  public boolean isSet(_Fields field) {
    if (field == null) {
      throw new IllegalArgumentException();
    }

    switch (field) {
    case NAMES:
      return isSetNames();
    case PROPERTIES:
      return isSetProperties();
    case NEW_PROPERTIES:
      return isSetNewProperties();
    case CATALOG_SCHEMA_VERSION:
      return isSetCatalogSchemaVersion();
    case EXISTS:
      return isSetExists();
    case OTHER_FLAGS:
      return isSetOtherFlags();
    case CATALOG_SCHEMA:
      return isSetCatalogSchema();
    case CATALOG_TABLE:
      return isSetCatalogTable();
    case CATALOG_FUNCTION:
      return isSetCatalogFunction();
    case CATALOG_PARTITIONS:
      return isSetCatalogPartitions();
    }
    throw new IllegalStateException();
  }

  @Override
  public boolean equals(Object that) {
    if (that == null)
      return false;
    if (that instanceof CatalogMetadataDetails)
      return this.equals((CatalogMetadataDetails)that);
    return false;
  }

  public boolean equals(CatalogMetadataDetails that) {
    if (that == null)
      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;
    }

    boolean this_present_properties = true && this.isSetProperties();
    boolean that_present_properties = true && that.isSetProperties();
    if (this_present_properties || that_present_properties) {
      if (!(this_present_properties && that_present_properties))
        return false;
      if (!this.properties.equals(that.properties))
        return false;
    }

    boolean this_present_newProperties = true && this.isSetNewProperties();
    boolean that_present_newProperties = true && that.isSetNewProperties();
    if (this_present_newProperties || that_present_newProperties) {
      if (!(this_present_newProperties && that_present_newProperties))
        return false;
      if (!this.newProperties.equals(that.newProperties))
        return false;
    }

    boolean this_present_catalogSchemaVersion = true && this.isSetCatalogSchemaVersion();
    boolean that_present_catalogSchemaVersion = true && that.isSetCatalogSchemaVersion();
    if (this_present_catalogSchemaVersion || that_present_catalogSchemaVersion) {
      if (!(this_present_catalogSchemaVersion && that_present_catalogSchemaVersion))
        return false;
      if (this.catalogSchemaVersion != that.catalogSchemaVersion)
        return false;
    }

    boolean this_present_exists = true && this.isSetExists();
    boolean that_present_exists = true && that.isSetExists();
    if (this_present_exists || that_present_exists) {
      if (!(this_present_exists && that_present_exists))
        return false;
      if (this.exists != that.exists)
        return false;
    }

    boolean this_present_otherFlags = true && this.isSetOtherFlags();
    boolean that_present_otherFlags = true && that.isSetOtherFlags();
    if (this_present_otherFlags || that_present_otherFlags) {
      if (!(this_present_otherFlags && that_present_otherFlags))
        return false;
      if (!this.otherFlags.equals(that.otherFlags))
        return false;
    }

    boolean this_present_catalogSchema = true && this.isSetCatalogSchema();
    boolean that_present_catalogSchema = true && that.isSetCatalogSchema();
    if (this_present_catalogSchema || that_present_catalogSchema) {
      if (!(this_present_catalogSchema && that_present_catalogSchema))
        return false;
      if (!this.catalogSchema.equals(that.catalogSchema))
        return false;
    }

    boolean this_present_catalogTable = true && this.isSetCatalogTable();
    boolean that_present_catalogTable = true && that.isSetCatalogTable();
    if (this_present_catalogTable || that_present_catalogTable) {
      if (!(this_present_catalogTable && that_present_catalogTable))
        return false;
      if (!this.catalogTable.equals(that.catalogTable))
        return false;
    }

    boolean this_present_catalogFunction = true && this.isSetCatalogFunction();
    boolean that_present_catalogFunction = true && that.isSetCatalogFunction();
    if (this_present_catalogFunction || that_present_catalogFunction) {
      if (!(this_present_catalogFunction && that_present_catalogFunction))
        return false;
      if (!this.catalogFunction.equals(that.catalogFunction))
        return false;
    }

    boolean this_present_catalogPartitions = true && this.isSetCatalogPartitions();
    boolean that_present_catalogPartitions = true && that.isSetCatalogPartitions();
    if (this_present_catalogPartitions || that_present_catalogPartitions) {
      if (!(this_present_catalogPartitions && that_present_catalogPartitions))
        return false;
      if (!this.catalogPartitions.equals(that.catalogPartitions))
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    List list = new ArrayList();

    boolean present_names = true && (isSetNames());
    list.add(present_names);
    if (present_names)
      list.add(names);

    boolean present_properties = true && (isSetProperties());
    list.add(present_properties);
    if (present_properties)
      list.add(properties);

    boolean present_newProperties = true && (isSetNewProperties());
    list.add(present_newProperties);
    if (present_newProperties)
      list.add(newProperties);

    boolean present_catalogSchemaVersion = true && (isSetCatalogSchemaVersion());
    list.add(present_catalogSchemaVersion);
    if (present_catalogSchemaVersion)
      list.add(catalogSchemaVersion);

    boolean present_exists = true && (isSetExists());
    list.add(present_exists);
    if (present_exists)
      list.add(exists);

    boolean present_otherFlags = true && (isSetOtherFlags());
    list.add(present_otherFlags);
    if (present_otherFlags)
      list.add(otherFlags);

    boolean present_catalogSchema = true && (isSetCatalogSchema());
    list.add(present_catalogSchema);
    if (present_catalogSchema)
      list.add(catalogSchema);

    boolean present_catalogTable = true && (isSetCatalogTable());
    list.add(present_catalogTable);
    if (present_catalogTable)
      list.add(catalogTable);

    boolean present_catalogFunction = true && (isSetCatalogFunction());
    list.add(present_catalogFunction);
    if (present_catalogFunction)
      list.add(catalogFunction);

    boolean present_catalogPartitions = true && (isSetCatalogPartitions());
    list.add(present_catalogPartitions);
    if (present_catalogPartitions)
      list.add(catalogPartitions);

    return list.hashCode();
  }

  @Override
  public int compareTo(CatalogMetadataDetails other) {
    if (!getClass().equals(other.getClass())) {
      return getClass().getName().compareTo(other.getClass().getName());
    }

    int lastComparison = 0;

    lastComparison = Boolean.valueOf(isSetNames()).compareTo(other.isSetNames());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetNames()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.names, other.names);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetProperties()).compareTo(other.isSetProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.properties, other.properties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetNewProperties()).compareTo(other.isSetNewProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetNewProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newProperties, other.newProperties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCatalogSchemaVersion()).compareTo(other.isSetCatalogSchemaVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCatalogSchemaVersion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogSchemaVersion, other.catalogSchemaVersion);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetExists()).compareTo(other.isSetExists());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExists()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exists, other.exists);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetOtherFlags()).compareTo(other.isSetOtherFlags());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOtherFlags()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.otherFlags, other.otherFlags);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCatalogSchema()).compareTo(other.isSetCatalogSchema());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCatalogSchema()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogSchema, other.catalogSchema);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCatalogTable()).compareTo(other.isSetCatalogTable());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCatalogTable()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogTable, other.catalogTable);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCatalogFunction()).compareTo(other.isSetCatalogFunction());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCatalogFunction()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogFunction, other.catalogFunction);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCatalogPartitions()).compareTo(other.isSetCatalogPartitions());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCatalogPartitions()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogPartitions, other.catalogPartitions);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
  }

  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder("CatalogMetadataDetails(");
    boolean first = true;

    if (isSetNames()) {
      sb.append("names:");
      if (this.names == null) {
        sb.append("null");
      } else {
        sb.append(this.names);
      }
      first = false;
    }
    if (isSetProperties()) {
      if (!first) sb.append(", ");
      sb.append("properties:");
      if (this.properties == null) {
        sb.append("null");
      } else {
        sb.append(this.properties);
      }
      first = false;
    }
    if (isSetNewProperties()) {
      if (!first) sb.append(", ");
      sb.append("newProperties:");
      if (this.newProperties == null) {
        sb.append("null");
      } else {
        sb.append(this.newProperties);
      }
      first = false;
    }
    if (isSetCatalogSchemaVersion()) {
      if (!first) sb.append(", ");
      sb.append("catalogSchemaVersion:");
      sb.append(this.catalogSchemaVersion);
      first = false;
    }
    if (isSetExists()) {
      if (!first) sb.append(", ");
      sb.append("exists:");
      sb.append(this.exists);
      first = false;
    }
    if (isSetOtherFlags()) {
      if (!first) sb.append(", ");
      sb.append("otherFlags:");
      if (this.otherFlags == null) {
        sb.append("null");
      } else {
        sb.append(this.otherFlags);
      }
      first = false;
    }
    if (isSetCatalogSchema()) {
      if (!first) sb.append(", ");
      sb.append("catalogSchema:");
      if (this.catalogSchema == null) {
        sb.append("null");
      } else {
        sb.append(this.catalogSchema);
      }
      first = false;
    }
    if (isSetCatalogTable()) {
      if (!first) sb.append(", ");
      sb.append("catalogTable:");
      if (this.catalogTable == null) {
        sb.append("null");
      } else {
        sb.append(this.catalogTable);
      }
      first = false;
    }
    if (isSetCatalogFunction()) {
      if (!first) sb.append(", ");
      sb.append("catalogFunction:");
      if (this.catalogFunction == null) {
        sb.append("null");
      } else {
        sb.append(this.catalogFunction);
      }
      first = false;
    }
    if (isSetCatalogPartitions()) {
      if (!first) sb.append(", ");
      sb.append("catalogPartitions:");
      if (this.catalogPartitions == null) {
        sb.append("null");
      } else {
        sb.append(this.catalogPartitions);
      }
      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 (catalogSchema != null) {
      catalogSchema.validate();
    }
    if (catalogTable != null) {
      catalogTable.validate();
    }
    if (catalogFunction != null) {
      catalogFunction.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, 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 CatalogMetadataDetailsStandardSchemeFactory implements SchemeFactory {
    public CatalogMetadataDetailsStandardScheme getScheme() {
      return new CatalogMetadataDetailsStandardScheme();
    }
  }

  private static class CatalogMetadataDetailsStandardScheme extends StandardScheme {

    public void read(org.apache.thrift.protocol.TProtocol iprot, CatalogMetadataDetails struct) throws org.apache.thrift.TException {
      org.apache.thrift.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: // NAMES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list420 = iprot.readListBegin();
                struct.names = new ArrayList(_list420.size);
                String _elem421;
                for (int _i422 = 0; _i422 < _list420.size; ++_i422)
                {
                  _elem421 = iprot.readString();
                  struct.names.add(_elem421);
                }
                iprot.readListEnd();
              }
              struct.setNamesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list423 = iprot.readListBegin();
                struct.properties = new ArrayList>(_list423.size);
                Map _elem424;
                for (int _i425 = 0; _i425 < _list423.size; ++_i425)
                {
                  {
                    org.apache.thrift.protocol.TMap _map426 = iprot.readMapBegin();
                    _elem424 = new HashMap(2*_map426.size);
                    String _key427;
                    String _val428;
                    for (int _i429 = 0; _i429 < _map426.size; ++_i429)
                    {
                      _key427 = iprot.readString();
                      _val428 = iprot.readString();
                      _elem424.put(_key427, _val428);
                    }
                    iprot.readMapEnd();
                  }
                  struct.properties.add(_elem424);
                }
                iprot.readListEnd();
              }
              struct.setPropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // NEW_PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list430 = iprot.readListBegin();
                struct.newProperties = new ArrayList>(_list430.size);
                Map _elem431;
                for (int _i432 = 0; _i432 < _list430.size; ++_i432)
                {
                  {
                    org.apache.thrift.protocol.TMap _map433 = iprot.readMapBegin();
                    _elem431 = new HashMap(2*_map433.size);
                    String _key434;
                    String _val435;
                    for (int _i436 = 0; _i436 < _map433.size; ++_i436)
                    {
                      _key434 = iprot.readString();
                      _val435 = iprot.readString();
                      _elem431.put(_key434, _val435);
                    }
                    iprot.readMapEnd();
                  }
                  struct.newProperties.add(_elem431);
                }
                iprot.readListEnd();
              }
              struct.setNewPropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // CATALOG_SCHEMA_VERSION
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.catalogSchemaVersion = iprot.readI64();
              struct.setCatalogSchemaVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // EXISTS
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.exists = iprot.readBool();
              struct.setExistsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // OTHER_FLAGS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list437 = iprot.readListBegin();
                struct.otherFlags = new ArrayList(_list437.size);
                int _elem438;
                for (int _i439 = 0; _i439 < _list437.size; ++_i439)
                {
                  _elem438 = iprot.readI32();
                  struct.otherFlags.add(_elem438);
                }
                iprot.readListEnd();
              }
              struct.setOtherFlagsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // CATALOG_SCHEMA
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.catalogSchema = new CatalogSchemaObject();
              struct.catalogSchema.read(iprot);
              struct.setCatalogSchemaIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // CATALOG_TABLE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.catalogTable = new CatalogTableObject();
              struct.catalogTable.read(iprot);
              struct.setCatalogTableIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // CATALOG_FUNCTION
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.catalogFunction = new CatalogFunctionObject();
              struct.catalogFunction.read(iprot);
              struct.setCatalogFunctionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // CATALOG_PARTITIONS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list440 = iprot.readListBegin();
                struct.catalogPartitions = new ArrayList(_list440.size);
                CatalogPartitionObject _elem441;
                for (int _i442 = 0; _i442 < _list440.size; ++_i442)
                {
                  _elem441 = new CatalogPartitionObject();
                  _elem441.read(iprot);
                  struct.catalogPartitions.add(_elem441);
                }
                iprot.readListEnd();
              }
              struct.setCatalogPartitionsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot, CatalogMetadataDetails struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.names != null) {
        if (struct.isSetNames()) {
          oprot.writeFieldBegin(NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.names.size()));
            for (String _iter443 : struct.names)
            {
              oprot.writeString(_iter443);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.properties != null) {
        if (struct.isSetProperties()) {
          oprot.writeFieldBegin(PROPERTIES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.MAP, struct.properties.size()));
            for (Map _iter444 : struct.properties)
            {
              {
                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter444.size()));
                for (Map.Entry _iter445 : _iter444.entrySet())
                {
                  oprot.writeString(_iter445.getKey());
                  oprot.writeString(_iter445.getValue());
                }
                oprot.writeMapEnd();
              }
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.newProperties != null) {
        if (struct.isSetNewProperties()) {
          oprot.writeFieldBegin(NEW_PROPERTIES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.MAP, struct.newProperties.size()));
            for (Map _iter446 : struct.newProperties)
            {
              {
                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter446.size()));
                for (Map.Entry _iter447 : _iter446.entrySet())
                {
                  oprot.writeString(_iter447.getKey());
                  oprot.writeString(_iter447.getValue());
                }
                oprot.writeMapEnd();
              }
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetCatalogSchemaVersion()) {
        oprot.writeFieldBegin(CATALOG_SCHEMA_VERSION_FIELD_DESC);
        oprot.writeI64(struct.catalogSchemaVersion);
        oprot.writeFieldEnd();
      }
      if (struct.isSetExists()) {
        oprot.writeFieldBegin(EXISTS_FIELD_DESC);
        oprot.writeBool(struct.exists);
        oprot.writeFieldEnd();
      }
      if (struct.otherFlags != null) {
        if (struct.isSetOtherFlags()) {
          oprot.writeFieldBegin(OTHER_FLAGS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, struct.otherFlags.size()));
            for (int _iter448 : struct.otherFlags)
            {
              oprot.writeI32(_iter448);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.catalogSchema != null) {
        if (struct.isSetCatalogSchema()) {
          oprot.writeFieldBegin(CATALOG_SCHEMA_FIELD_DESC);
          struct.catalogSchema.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.catalogTable != null) {
        if (struct.isSetCatalogTable()) {
          oprot.writeFieldBegin(CATALOG_TABLE_FIELD_DESC);
          struct.catalogTable.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.catalogFunction != null) {
        if (struct.isSetCatalogFunction()) {
          oprot.writeFieldBegin(CATALOG_FUNCTION_FIELD_DESC);
          struct.catalogFunction.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.catalogPartitions != null) {
        if (struct.isSetCatalogPartitions()) {
          oprot.writeFieldBegin(CATALOG_PARTITIONS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.catalogPartitions.size()));
            for (CatalogPartitionObject _iter449 : struct.catalogPartitions)
            {
              _iter449.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class CatalogMetadataDetailsTupleSchemeFactory implements SchemeFactory {
    public CatalogMetadataDetailsTupleScheme getScheme() {
      return new CatalogMetadataDetailsTupleScheme();
    }
  }

  private static class CatalogMetadataDetailsTupleScheme extends TupleScheme {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, CatalogMetadataDetails struct) throws org.apache.thrift.TException {
      TTupleProtocol oprot = (TTupleProtocol) prot;
      BitSet optionals = new BitSet();
      if (struct.isSetNames()) {
        optionals.set(0);
      }
      if (struct.isSetProperties()) {
        optionals.set(1);
      }
      if (struct.isSetNewProperties()) {
        optionals.set(2);
      }
      if (struct.isSetCatalogSchemaVersion()) {
        optionals.set(3);
      }
      if (struct.isSetExists()) {
        optionals.set(4);
      }
      if (struct.isSetOtherFlags()) {
        optionals.set(5);
      }
      if (struct.isSetCatalogSchema()) {
        optionals.set(6);
      }
      if (struct.isSetCatalogTable()) {
        optionals.set(7);
      }
      if (struct.isSetCatalogFunction()) {
        optionals.set(8);
      }
      if (struct.isSetCatalogPartitions()) {
        optionals.set(9);
      }
      oprot.writeBitSet(optionals, 10);
      if (struct.isSetNames()) {
        {
          oprot.writeI32(struct.names.size());
          for (String _iter450 : struct.names)
          {
            oprot.writeString(_iter450);
          }
        }
      }
      if (struct.isSetProperties()) {
        {
          oprot.writeI32(struct.properties.size());
          for (Map _iter451 : struct.properties)
          {
            {
              oprot.writeI32(_iter451.size());
              for (Map.Entry _iter452 : _iter451.entrySet())
              {
                oprot.writeString(_iter452.getKey());
                oprot.writeString(_iter452.getValue());
              }
            }
          }
        }
      }
      if (struct.isSetNewProperties()) {
        {
          oprot.writeI32(struct.newProperties.size());
          for (Map _iter453 : struct.newProperties)
          {
            {
              oprot.writeI32(_iter453.size());
              for (Map.Entry _iter454 : _iter453.entrySet())
              {
                oprot.writeString(_iter454.getKey());
                oprot.writeString(_iter454.getValue());
              }
            }
          }
        }
      }
      if (struct.isSetCatalogSchemaVersion()) {
        oprot.writeI64(struct.catalogSchemaVersion);
      }
      if (struct.isSetExists()) {
        oprot.writeBool(struct.exists);
      }
      if (struct.isSetOtherFlags()) {
        {
          oprot.writeI32(struct.otherFlags.size());
          for (int _iter455 : struct.otherFlags)
          {
            oprot.writeI32(_iter455);
          }
        }
      }
      if (struct.isSetCatalogSchema()) {
        struct.catalogSchema.write(oprot);
      }
      if (struct.isSetCatalogTable()) {
        struct.catalogTable.write(oprot);
      }
      if (struct.isSetCatalogFunction()) {
        struct.catalogFunction.write(oprot);
      }
      if (struct.isSetCatalogPartitions()) {
        {
          oprot.writeI32(struct.catalogPartitions.size());
          for (CatalogPartitionObject _iter456 : struct.catalogPartitions)
          {
            _iter456.write(oprot);
          }
        }
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, CatalogMetadataDetails struct) throws org.apache.thrift.TException {
      TTupleProtocol iprot = (TTupleProtocol) prot;
      BitSet incoming = iprot.readBitSet(10);
      if (incoming.get(0)) {
        {
          org.apache.thrift.protocol.TList _list457 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
          struct.names = new ArrayList(_list457.size);
          String _elem458;
          for (int _i459 = 0; _i459 < _list457.size; ++_i459)
          {
            _elem458 = iprot.readString();
            struct.names.add(_elem458);
          }
        }
        struct.setNamesIsSet(true);
      }
      if (incoming.get(1)) {
        {
          org.apache.thrift.protocol.TList _list460 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.MAP, iprot.readI32());
          struct.properties = new ArrayList>(_list460.size);
          Map _elem461;
          for (int _i462 = 0; _i462 < _list460.size; ++_i462)
          {
            {
              org.apache.thrift.protocol.TMap _map463 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
              _elem461 = new HashMap(2*_map463.size);
              String _key464;
              String _val465;
              for (int _i466 = 0; _i466 < _map463.size; ++_i466)
              {
                _key464 = iprot.readString();
                _val465 = iprot.readString();
                _elem461.put(_key464, _val465);
              }
            }
            struct.properties.add(_elem461);
          }
        }
        struct.setPropertiesIsSet(true);
      }
      if (incoming.get(2)) {
        {
          org.apache.thrift.protocol.TList _list467 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.MAP, iprot.readI32());
          struct.newProperties = new ArrayList>(_list467.size);
          Map _elem468;
          for (int _i469 = 0; _i469 < _list467.size; ++_i469)
          {
            {
              org.apache.thrift.protocol.TMap _map470 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
              _elem468 = new HashMap(2*_map470.size);
              String _key471;
              String _val472;
              for (int _i473 = 0; _i473 < _map470.size; ++_i473)
              {
                _key471 = iprot.readString();
                _val472 = iprot.readString();
                _elem468.put(_key471, _val472);
              }
            }
            struct.newProperties.add(_elem468);
          }
        }
        struct.setNewPropertiesIsSet(true);
      }
      if (incoming.get(3)) {
        struct.catalogSchemaVersion = iprot.readI64();
        struct.setCatalogSchemaVersionIsSet(true);
      }
      if (incoming.get(4)) {
        struct.exists = iprot.readBool();
        struct.setExistsIsSet(true);
      }
      if (incoming.get(5)) {
        {
          org.apache.thrift.protocol.TList _list474 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, iprot.readI32());
          struct.otherFlags = new ArrayList(_list474.size);
          int _elem475;
          for (int _i476 = 0; _i476 < _list474.size; ++_i476)
          {
            _elem475 = iprot.readI32();
            struct.otherFlags.add(_elem475);
          }
        }
        struct.setOtherFlagsIsSet(true);
      }
      if (incoming.get(6)) {
        struct.catalogSchema = new CatalogSchemaObject();
        struct.catalogSchema.read(iprot);
        struct.setCatalogSchemaIsSet(true);
      }
      if (incoming.get(7)) {
        struct.catalogTable = new CatalogTableObject();
        struct.catalogTable.read(iprot);
        struct.setCatalogTableIsSet(true);
      }
      if (incoming.get(8)) {
        struct.catalogFunction = new CatalogFunctionObject();
        struct.catalogFunction.read(iprot);
        struct.setCatalogFunctionIsSet(true);
      }
      if (incoming.get(9)) {
        {
          org.apache.thrift.protocol.TList _list477 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
          struct.catalogPartitions = new ArrayList(_list477.size);
          CatalogPartitionObject _elem478;
          for (int _i479 = 0; _i479 < _list477.size; ++_i479)
          {
            _elem478 = new CatalogPartitionObject();
            _elem478.read(iprot);
            struct.catalogPartitions.add(_elem478);
          }
        }
        struct.setCatalogPartitionsIsSet(true);
      }
    }
  }

}