Package org.apache.blur.thrift.generated

Source Code of org.apache.blur.thrift.generated.TableDescriptor

/**
* Autogenerated by Thrift Compiler (0.9.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
*  @generated
*/
package org.apache.blur.thrift.generated;

/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/



import org.apache.blur.thirdparty.thrift_0_9_0.scheme.IScheme;
import org.apache.blur.thirdparty.thrift_0_9_0.scheme.SchemeFactory;
import org.apache.blur.thirdparty.thrift_0_9_0.scheme.StandardScheme;

import org.apache.blur.thirdparty.thrift_0_9_0.scheme.TupleScheme;
import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TTupleProtocol;
import org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolException;
import org.apache.blur.thirdparty.thrift_0_9_0.EncodingUtils;
import org.apache.blur.thirdparty.thrift_0_9_0.TException;
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 org.slf4j.Logger;
//import org.slf4j.LoggerFactory;

/**
* The table descriptor defines the base structure of the table as well as properties need for setup.
*/
public class TableDescriptor implements org.apache.blur.thirdparty.thrift_0_9_0.TBase<TableDescriptor, TableDescriptor._Fields>, java.io.Serializable, Cloneable {
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct STRUCT_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TStruct("TableDescriptor");

  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField ENABLED_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("enabled", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)1);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField SHARD_COUNT_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("shardCount", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32, (short)3);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField TABLE_URI_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("tableUri", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)4);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField CLUSTER_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("cluster", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)7);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField NAME_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("name", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)8);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField SIMILARITY_CLASS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("similarityClass", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)9);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField BLOCK_CACHING_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("blockCaching", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)10);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField BLOCK_CACHING_FILE_TYPES_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("blockCachingFileTypes", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET, (short)11);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField READ_ONLY_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("readOnly", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)12);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField PRE_CACHE_COLS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("preCacheCols", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, (short)13);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField TABLE_PROPERTIES_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("tableProperties", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP, (short)14);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField STRICT_TYPES_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("strictTypes", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)15);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField DEFAULT_MISSING_FIELD_TYPE_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("defaultMissingFieldType", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)16);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField DEFAULT_MISSING_FIELD_LESS_INDEXING_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("defaultMissingFieldLessIndexing", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)17);
  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField DEFAULT_MISSING_FIELD_PROPS_FIELD_DESC = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("defaultMissingFieldProps", org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP, (short)18);

  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
  static {
    schemes.put(StandardScheme.class, new TableDescriptorStandardSchemeFactory());
    schemes.put(TupleScheme.class, new TableDescriptorTupleSchemeFactory());
  }

  /**
   * Is the table enabled or not, enabled by default.
   */
  public boolean enabled; // required
  /**
   * The number of shards within the given table.
   */
  public int shardCount; // required
  /**
   * The location where the table should be stored this can be "file:///" for a local instance of Blur or "hdfs://" for a distributed installation of Blur.
   */
  public String tableUri; // required
  /**
   * The cluster where this table should be created.
   */
  public String cluster; // required
  /**
   * The table name.
   */
  public String name; // required
  /**
   * Sets the similarity class in Lucene.
   */
  public String similarityClass; // required
  /**
   * Should block cache be enable or disabled for this table.
   */
  public boolean blockCaching; // required
  /**
   * The files extensions that you would like to allow block cache to cache.  If null (default) everything is cached.
   */
  public Set<String> blockCachingFileTypes; // required
  /**
   * If a table is set to be readonly, that means that mutates through Thrift are NOT allowed.  However
   * updates through MapReduce are allowed and in fact they are only allowed if the table is in readOnly mode.
   */
  public boolean readOnly; // required
  /**
   * This map sets what column families and columns to prefetch into block cache on shard open.
   */
  public List<String> preCacheCols; // required
  /**
   * The table properties that can modify the default behavior of the table.  TODO: Document all options.
   */
  public Map<String,String> tableProperties; // required
  /**
   * Whether strict types are enabled or not (default).  If they are enabled no column can be added without first having it's type defined.
   */
  public boolean strictTypes; // required
  /**
   * If strict is not enabled, the default field type.
   */
  public String defaultMissingFieldType; // required
  /**
   * If strict is not enabled, defines whether or not field less indexing is enabled on the newly created fields.
   */
  public boolean defaultMissingFieldLessIndexing; // required
  /**
   * If strict is not enabled, defines the properties to be used in the new field creation.
   */
  public Map<String,String> defaultMissingFieldProps; // required

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.blur.thirdparty.thrift_0_9_0.TFieldIdEnum {
    /**
     * Is the table enabled or not, enabled by default.
     */
    ENABLED((short)1, "enabled"),
    /**
     * The number of shards within the given table.
     */
    SHARD_COUNT((short)3, "shardCount"),
    /**
     * The location where the table should be stored this can be "file:///" for a local instance of Blur or "hdfs://" for a distributed installation of Blur.
     */
    TABLE_URI((short)4, "tableUri"),
    /**
     * The cluster where this table should be created.
     */
    CLUSTER((short)7, "cluster"),
    /**
     * The table name.
     */
    NAME((short)8, "name"),
    /**
     * Sets the similarity class in Lucene.
     */
    SIMILARITY_CLASS((short)9, "similarityClass"),
    /**
     * Should block cache be enable or disabled for this table.
     */
    BLOCK_CACHING((short)10, "blockCaching"),
    /**
     * The files extensions that you would like to allow block cache to cache.  If null (default) everything is cached.
     */
    BLOCK_CACHING_FILE_TYPES((short)11, "blockCachingFileTypes"),
    /**
     * If a table is set to be readonly, that means that mutates through Thrift are NOT allowed.  However
     * updates through MapReduce are allowed and in fact they are only allowed if the table is in readOnly mode.
     */
    READ_ONLY((short)12, "readOnly"),
    /**
     * This map sets what column families and columns to prefetch into block cache on shard open.
     */
    PRE_CACHE_COLS((short)13, "preCacheCols"),
    /**
     * The table properties that can modify the default behavior of the table.  TODO: Document all options.
     */
    TABLE_PROPERTIES((short)14, "tableProperties"),
    /**
     * Whether strict types are enabled or not (default).  If they are enabled no column can be added without first having it's type defined.
     */
    STRICT_TYPES((short)15, "strictTypes"),
    /**
     * If strict is not enabled, the default field type.
     */
    DEFAULT_MISSING_FIELD_TYPE((short)16, "defaultMissingFieldType"),
    /**
     * If strict is not enabled, defines whether or not field less indexing is enabled on the newly created fields.
     */
    DEFAULT_MISSING_FIELD_LESS_INDEXING((short)17, "defaultMissingFieldLessIndexing"),
    /**
     * If strict is not enabled, defines the properties to be used in the new field creation.
     */
    DEFAULT_MISSING_FIELD_PROPS((short)18, "defaultMissingFieldProps");

    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

    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: // ENABLED
          return ENABLED;
        case 3: // SHARD_COUNT
          return SHARD_COUNT;
        case 4: // TABLE_URI
          return TABLE_URI;
        case 7: // CLUSTER
          return CLUSTER;
        case 8: // NAME
          return NAME;
        case 9: // SIMILARITY_CLASS
          return SIMILARITY_CLASS;
        case 10: // BLOCK_CACHING
          return BLOCK_CACHING;
        case 11: // BLOCK_CACHING_FILE_TYPES
          return BLOCK_CACHING_FILE_TYPES;
        case 12: // READ_ONLY
          return READ_ONLY;
        case 13: // PRE_CACHE_COLS
          return PRE_CACHE_COLS;
        case 14: // TABLE_PROPERTIES
          return TABLE_PROPERTIES;
        case 15: // STRICT_TYPES
          return STRICT_TYPES;
        case 16: // DEFAULT_MISSING_FIELD_TYPE
          return DEFAULT_MISSING_FIELD_TYPE;
        case 17: // DEFAULT_MISSING_FIELD_LESS_INDEXING
          return DEFAULT_MISSING_FIELD_LESS_INDEXING;
        case 18: // DEFAULT_MISSING_FIELD_PROPS
          return DEFAULT_MISSING_FIELD_PROPS;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches 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 __ENABLED_ISSET_ID = 0;
  private static final int __SHARDCOUNT_ISSET_ID = 1;
  private static final int __BLOCKCACHING_ISSET_ID = 2;
  private static final int __READONLY_ISSET_ID = 3;
  private static final int __STRICTTYPES_ISSET_ID = 4;
  private static final int __DEFAULTMISSINGFIELDLESSINDEXING_ISSET_ID = 5;
  private byte __isset_bitfield = 0;
  public static final Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> metaDataMap;
  static {
    Map<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.ENABLED, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("enabled", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
    tmpMap.put(_Fields.SHARD_COUNT, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("shardCount", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32)));
    tmpMap.put(_Fields.TABLE_URI, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("tableUri", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
    tmpMap.put(_Fields.CLUSTER, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("cluster", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
    tmpMap.put(_Fields.NAME, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("name", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
    tmpMap.put(_Fields.SIMILARITY_CLASS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("similarityClass", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
    tmpMap.put(_Fields.BLOCK_CACHING, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("blockCaching", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
    tmpMap.put(_Fields.BLOCK_CACHING_FILE_TYPES, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("blockCachingFileTypes", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.SetMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET,
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
    tmpMap.put(_Fields.READ_ONLY, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("readOnly", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
    tmpMap.put(_Fields.PRE_CACHE_COLS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("preCacheCols", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.ListMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST,
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
    tmpMap.put(_Fields.TABLE_PROPERTIES, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("tableProperties", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.MapMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP,
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING),
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
    tmpMap.put(_Fields.STRICT_TYPES, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("strictTypes", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
    tmpMap.put(_Fields.DEFAULT_MISSING_FIELD_TYPE, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("defaultMissingFieldType", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
    tmpMap.put(_Fields.DEFAULT_MISSING_FIELD_LESS_INDEXING, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("defaultMissingFieldLessIndexing", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL)));
    tmpMap.put(_Fields.DEFAULT_MISSING_FIELD_PROPS, new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("defaultMissingFieldProps", org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT,
        new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.MapMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP,
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING),
            new org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData.addStructMetaDataMap(TableDescriptor.class, metaDataMap);
  }

  public TableDescriptor() {
    this.enabled = true;

    this.shardCount = 1;

    this.cluster = "default";

    this.blockCaching = true;

    this.readOnly = false;

    this.strictTypes = false;

    this.defaultMissingFieldType = "text";

    this.defaultMissingFieldLessIndexing = true;

  }

  public TableDescriptor(
    boolean enabled,
    int shardCount,
    String tableUri,
    String cluster,
    String name,
    String similarityClass,
    boolean blockCaching,
    Set<String> blockCachingFileTypes,
    boolean readOnly,
    List<String> preCacheCols,
    Map<String,String> tableProperties,
    boolean strictTypes,
    String defaultMissingFieldType,
    boolean defaultMissingFieldLessIndexing,
    Map<String,String> defaultMissingFieldProps)
  {
    this();
    this.enabled = enabled;
    setEnabledIsSet(true);
    this.shardCount = shardCount;
    setShardCountIsSet(true);
    this.tableUri = tableUri;
    this.cluster = cluster;
    this.name = name;
    this.similarityClass = similarityClass;
    this.blockCaching = blockCaching;
    setBlockCachingIsSet(true);
    this.blockCachingFileTypes = blockCachingFileTypes;
    this.readOnly = readOnly;
    setReadOnlyIsSet(true);
    this.preCacheCols = preCacheCols;
    this.tableProperties = tableProperties;
    this.strictTypes = strictTypes;
    setStrictTypesIsSet(true);
    this.defaultMissingFieldType = defaultMissingFieldType;
    this.defaultMissingFieldLessIndexing = defaultMissingFieldLessIndexing;
    setDefaultMissingFieldLessIndexingIsSet(true);
    this.defaultMissingFieldProps = defaultMissingFieldProps;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TableDescriptor(TableDescriptor other) {
    __isset_bitfield = other.__isset_bitfield;
    this.enabled = other.enabled;
    this.shardCount = other.shardCount;
    if (other.isSetTableUri()) {
      this.tableUri = other.tableUri;
    }
    if (other.isSetCluster()) {
      this.cluster = other.cluster;
    }
    if (other.isSetName()) {
      this.name = other.name;
    }
    if (other.isSetSimilarityClass()) {
      this.similarityClass = other.similarityClass;
    }
    this.blockCaching = other.blockCaching;
    if (other.isSetBlockCachingFileTypes()) {
      Set<String> __this__blockCachingFileTypes = new HashSet<String>();
      for (String other_element : other.blockCachingFileTypes) {
        __this__blockCachingFileTypes.add(other_element);
      }
      this.blockCachingFileTypes = __this__blockCachingFileTypes;
    }
    this.readOnly = other.readOnly;
    if (other.isSetPreCacheCols()) {
      List<String> __this__preCacheCols = new ArrayList<String>();
      for (String other_element : other.preCacheCols) {
        __this__preCacheCols.add(other_element);
      }
      this.preCacheCols = __this__preCacheCols;
    }
    if (other.isSetTableProperties()) {
      Map<String,String> __this__tableProperties = new HashMap<String,String>();
      for (Map.Entry<String, String> other_element : other.tableProperties.entrySet()) {

        String other_element_key = other_element.getKey();
        String other_element_value = other_element.getValue();

        String __this__tableProperties_copy_key = other_element_key;

        String __this__tableProperties_copy_value = other_element_value;

        __this__tableProperties.put(__this__tableProperties_copy_key, __this__tableProperties_copy_value);
      }
      this.tableProperties = __this__tableProperties;
    }
    this.strictTypes = other.strictTypes;
    if (other.isSetDefaultMissingFieldType()) {
      this.defaultMissingFieldType = other.defaultMissingFieldType;
    }
    this.defaultMissingFieldLessIndexing = other.defaultMissingFieldLessIndexing;
    if (other.isSetDefaultMissingFieldProps()) {
      Map<String,String> __this__defaultMissingFieldProps = new HashMap<String,String>();
      for (Map.Entry<String, String> other_element : other.defaultMissingFieldProps.entrySet()) {

        String other_element_key = other_element.getKey();
        String other_element_value = other_element.getValue();

        String __this__defaultMissingFieldProps_copy_key = other_element_key;

        String __this__defaultMissingFieldProps_copy_value = other_element_value;

        __this__defaultMissingFieldProps.put(__this__defaultMissingFieldProps_copy_key, __this__defaultMissingFieldProps_copy_value);
      }
      this.defaultMissingFieldProps = __this__defaultMissingFieldProps;
    }
  }

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

  @Override
  public void clear() {
    this.enabled = true;

    this.shardCount = 1;

    this.tableUri = null;
    this.cluster = "default";

    this.name = null;
    this.similarityClass = null;
    this.blockCaching = true;

    this.blockCachingFileTypes = null;
    this.readOnly = false;

    this.preCacheCols = null;
    this.tableProperties = null;
    this.strictTypes = false;

    this.defaultMissingFieldType = "text";

    this.defaultMissingFieldLessIndexing = true;

    this.defaultMissingFieldProps = null;
  }

  /**
   * Is the table enabled or not, enabled by default.
   */
  public boolean isEnabled() {
    return this.enabled;
  }

  /**
   * Is the table enabled or not, enabled by default.
   */
  public TableDescriptor setEnabled(boolean enabled) {
    this.enabled = enabled;
    setEnabledIsSet(true);
    return this;
  }

  public void unsetEnabled() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLED_ISSET_ID);
  }

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

  public void setEnabledIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLED_ISSET_ID, value);
  }

  /**
   * The number of shards within the given table.
   */
  public int getShardCount() {
    return this.shardCount;
  }

  /**
   * The number of shards within the given table.
   */
  public TableDescriptor setShardCount(int shardCount) {
    this.shardCount = shardCount;
    setShardCountIsSet(true);
    return this;
  }

  public void unsetShardCount() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHARDCOUNT_ISSET_ID);
  }

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

  public void setShardCountIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHARDCOUNT_ISSET_ID, value);
  }

  /**
   * The location where the table should be stored this can be "file:///" for a local instance of Blur or "hdfs://" for a distributed installation of Blur.
   */
  public String getTableUri() {
    return this.tableUri;
  }

  /**
   * The location where the table should be stored this can be "file:///" for a local instance of Blur or "hdfs://" for a distributed installation of Blur.
   */
  public TableDescriptor setTableUri(String tableUri) {
    this.tableUri = tableUri;
    return this;
  }

  public void unsetTableUri() {
    this.tableUri = null;
  }

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

  public void setTableUriIsSet(boolean value) {
    if (!value) {
      this.tableUri = null;
    }
  }

  /**
   * The cluster where this table should be created.
   */
  public String getCluster() {
    return this.cluster;
  }

  /**
   * The cluster where this table should be created.
   */
  public TableDescriptor setCluster(String cluster) {
    this.cluster = cluster;
    return this;
  }

  public void unsetCluster() {
    this.cluster = null;
  }

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

  public void setClusterIsSet(boolean value) {
    if (!value) {
      this.cluster = null;
    }
  }

  /**
   * The table name.
   */
  public String getName() {
    return this.name;
  }

  /**
   * The table name.
   */
  public TableDescriptor setName(String name) {
    this.name = name;
    return this;
  }

  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;
    }
  }

  /**
   * Sets the similarity class in Lucene.
   */
  public String getSimilarityClass() {
    return this.similarityClass;
  }

  /**
   * Sets the similarity class in Lucene.
   */
  public TableDescriptor setSimilarityClass(String similarityClass) {
    this.similarityClass = similarityClass;
    return this;
  }

  public void unsetSimilarityClass() {
    this.similarityClass = null;
  }

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

  public void setSimilarityClassIsSet(boolean value) {
    if (!value) {
      this.similarityClass = null;
    }
  }

  /**
   * Should block cache be enable or disabled for this table.
   */
  public boolean isBlockCaching() {
    return this.blockCaching;
  }

  /**
   * Should block cache be enable or disabled for this table.
   */
  public TableDescriptor setBlockCaching(boolean blockCaching) {
    this.blockCaching = blockCaching;
    setBlockCachingIsSet(true);
    return this;
  }

  public void unsetBlockCaching() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __BLOCKCACHING_ISSET_ID);
  }

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

  public void setBlockCachingIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __BLOCKCACHING_ISSET_ID, value);
  }

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

  public java.util.Iterator<String> getBlockCachingFileTypesIterator() {
    return (this.blockCachingFileTypes == null) ? null : this.blockCachingFileTypes.iterator();
  }

  public void addToBlockCachingFileTypes(String elem) {
    if (this.blockCachingFileTypes == null) {
      this.blockCachingFileTypes = new HashSet<String>();
    }
    this.blockCachingFileTypes.add(elem);
  }

  /**
   * The files extensions that you would like to allow block cache to cache.  If null (default) everything is cached.
   */
  public Set<String> getBlockCachingFileTypes() {
    return this.blockCachingFileTypes;
  }

  /**
   * The files extensions that you would like to allow block cache to cache.  If null (default) everything is cached.
   */
  public TableDescriptor setBlockCachingFileTypes(Set<String> blockCachingFileTypes) {
    this.blockCachingFileTypes = blockCachingFileTypes;
    return this;
  }

  public void unsetBlockCachingFileTypes() {
    this.blockCachingFileTypes = null;
  }

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

  public void setBlockCachingFileTypesIsSet(boolean value) {
    if (!value) {
      this.blockCachingFileTypes = null;
    }
  }

  /**
   * If a table is set to be readonly, that means that mutates through Thrift are NOT allowed.  However
   * updates through MapReduce are allowed and in fact they are only allowed if the table is in readOnly mode.
   */
  public boolean isReadOnly() {
    return this.readOnly;
  }

  /**
   * If a table is set to be readonly, that means that mutates through Thrift are NOT allowed.  However
   * updates through MapReduce are allowed and in fact they are only allowed if the table is in readOnly mode.
   */
  public TableDescriptor setReadOnly(boolean readOnly) {
    this.readOnly = readOnly;
    setReadOnlyIsSet(true);
    return this;
  }

  public void unsetReadOnly() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __READONLY_ISSET_ID);
  }

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

  public void setReadOnlyIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __READONLY_ISSET_ID, value);
  }

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

  public java.util.Iterator<String> getPreCacheColsIterator() {
    return (this.preCacheCols == null) ? null : this.preCacheCols.iterator();
  }

  public void addToPreCacheCols(String elem) {
    if (this.preCacheCols == null) {
      this.preCacheCols = new ArrayList<String>();
    }
    this.preCacheCols.add(elem);
  }

  /**
   * This map sets what column families and columns to prefetch into block cache on shard open.
   */
  public List<String> getPreCacheCols() {
    return this.preCacheCols;
  }

  /**
   * This map sets what column families and columns to prefetch into block cache on shard open.
   */
  public TableDescriptor setPreCacheCols(List<String> preCacheCols) {
    this.preCacheCols = preCacheCols;
    return this;
  }

  public void unsetPreCacheCols() {
    this.preCacheCols = null;
  }

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

  public void setPreCacheColsIsSet(boolean value) {
    if (!value) {
      this.preCacheCols = null;
    }
  }

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

  public void putToTableProperties(String key, String val) {
    if (this.tableProperties == null) {
      this.tableProperties = new HashMap<String,String>();
    }
    this.tableProperties.put(key, val);
  }

  /**
   * The table properties that can modify the default behavior of the table.  TODO: Document all options.
   */
  public Map<String,String> getTableProperties() {
    return this.tableProperties;
  }

  /**
   * The table properties that can modify the default behavior of the table.  TODO: Document all options.
   */
  public TableDescriptor setTableProperties(Map<String,String> tableProperties) {
    this.tableProperties = tableProperties;
    return this;
  }

  public void unsetTableProperties() {
    this.tableProperties = null;
  }

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

  public void setTablePropertiesIsSet(boolean value) {
    if (!value) {
      this.tableProperties = null;
    }
  }

  /**
   * Whether strict types are enabled or not (default).  If they are enabled no column can be added without first having it's type defined.
   */
  public boolean isStrictTypes() {
    return this.strictTypes;
  }

  /**
   * Whether strict types are enabled or not (default).  If they are enabled no column can be added without first having it's type defined.
   */
  public TableDescriptor setStrictTypes(boolean strictTypes) {
    this.strictTypes = strictTypes;
    setStrictTypesIsSet(true);
    return this;
  }

  public void unsetStrictTypes() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __STRICTTYPES_ISSET_ID);
  }

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

  public void setStrictTypesIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __STRICTTYPES_ISSET_ID, value);
  }

  /**
   * If strict is not enabled, the default field type.
   */
  public String getDefaultMissingFieldType() {
    return this.defaultMissingFieldType;
  }

  /**
   * If strict is not enabled, the default field type.
   */
  public TableDescriptor setDefaultMissingFieldType(String defaultMissingFieldType) {
    this.defaultMissingFieldType = defaultMissingFieldType;
    return this;
  }

  public void unsetDefaultMissingFieldType() {
    this.defaultMissingFieldType = null;
  }

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

  public void setDefaultMissingFieldTypeIsSet(boolean value) {
    if (!value) {
      this.defaultMissingFieldType = null;
    }
  }

  /**
   * If strict is not enabled, defines whether or not field less indexing is enabled on the newly created fields.
   */
  public boolean isDefaultMissingFieldLessIndexing() {
    return this.defaultMissingFieldLessIndexing;
  }

  /**
   * If strict is not enabled, defines whether or not field less indexing is enabled on the newly created fields.
   */
  public TableDescriptor setDefaultMissingFieldLessIndexing(boolean defaultMissingFieldLessIndexing) {
    this.defaultMissingFieldLessIndexing = defaultMissingFieldLessIndexing;
    setDefaultMissingFieldLessIndexingIsSet(true);
    return this;
  }

  public void unsetDefaultMissingFieldLessIndexing() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DEFAULTMISSINGFIELDLESSINDEXING_ISSET_ID);
  }

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

  public void setDefaultMissingFieldLessIndexingIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTMISSINGFIELDLESSINDEXING_ISSET_ID, value);
  }

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

  public void putToDefaultMissingFieldProps(String key, String val) {
    if (this.defaultMissingFieldProps == null) {
      this.defaultMissingFieldProps = new HashMap<String,String>();
    }
    this.defaultMissingFieldProps.put(key, val);
  }

  /**
   * If strict is not enabled, defines the properties to be used in the new field creation.
   */
  public Map<String,String> getDefaultMissingFieldProps() {
    return this.defaultMissingFieldProps;
  }

  /**
   * If strict is not enabled, defines the properties to be used in the new field creation.
   */
  public TableDescriptor setDefaultMissingFieldProps(Map<String,String> defaultMissingFieldProps) {
    this.defaultMissingFieldProps = defaultMissingFieldProps;
    return this;
  }

  public void unsetDefaultMissingFieldProps() {
    this.defaultMissingFieldProps = null;
  }

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

  public void setDefaultMissingFieldPropsIsSet(boolean value) {
    if (!value) {
      this.defaultMissingFieldProps = null;
    }
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case ENABLED:
      if (value == null) {
        unsetEnabled();
      } else {
        setEnabled((Boolean)value);
      }
      break;

    case SHARD_COUNT:
      if (value == null) {
        unsetShardCount();
      } else {
        setShardCount((Integer)value);
      }
      break;

    case TABLE_URI:
      if (value == null) {
        unsetTableUri();
      } else {
        setTableUri((String)value);
      }
      break;

    case CLUSTER:
      if (value == null) {
        unsetCluster();
      } else {
        setCluster((String)value);
      }
      break;

    case NAME:
      if (value == null) {
        unsetName();
      } else {
        setName((String)value);
      }
      break;

    case SIMILARITY_CLASS:
      if (value == null) {
        unsetSimilarityClass();
      } else {
        setSimilarityClass((String)value);
      }
      break;

    case BLOCK_CACHING:
      if (value == null) {
        unsetBlockCaching();
      } else {
        setBlockCaching((Boolean)value);
      }
      break;

    case BLOCK_CACHING_FILE_TYPES:
      if (value == null) {
        unsetBlockCachingFileTypes();
      } else {
        setBlockCachingFileTypes((Set<String>)value);
      }
      break;

    case READ_ONLY:
      if (value == null) {
        unsetReadOnly();
      } else {
        setReadOnly((Boolean)value);
      }
      break;

    case PRE_CACHE_COLS:
      if (value == null) {
        unsetPreCacheCols();
      } else {
        setPreCacheCols((List<String>)value);
      }
      break;

    case TABLE_PROPERTIES:
      if (value == null) {
        unsetTableProperties();
      } else {
        setTableProperties((Map<String,String>)value);
      }
      break;

    case STRICT_TYPES:
      if (value == null) {
        unsetStrictTypes();
      } else {
        setStrictTypes((Boolean)value);
      }
      break;

    case DEFAULT_MISSING_FIELD_TYPE:
      if (value == null) {
        unsetDefaultMissingFieldType();
      } else {
        setDefaultMissingFieldType((String)value);
      }
      break;

    case DEFAULT_MISSING_FIELD_LESS_INDEXING:
      if (value == null) {
        unsetDefaultMissingFieldLessIndexing();
      } else {
        setDefaultMissingFieldLessIndexing((Boolean)value);
      }
      break;

    case DEFAULT_MISSING_FIELD_PROPS:
      if (value == null) {
        unsetDefaultMissingFieldProps();
      } else {
        setDefaultMissingFieldProps((Map<String,String>)value);
      }
      break;

    }
  }

  public Object getFieldValue(_Fields field) {
    switch (field) {
    case ENABLED:
      return Boolean.valueOf(isEnabled());

    case SHARD_COUNT:
      return Integer.valueOf(getShardCount());

    case TABLE_URI:
      return getTableUri();

    case CLUSTER:
      return getCluster();

    case NAME:
      return getName();

    case SIMILARITY_CLASS:
      return getSimilarityClass();

    case BLOCK_CACHING:
      return Boolean.valueOf(isBlockCaching());

    case BLOCK_CACHING_FILE_TYPES:
      return getBlockCachingFileTypes();

    case READ_ONLY:
      return Boolean.valueOf(isReadOnly());

    case PRE_CACHE_COLS:
      return getPreCacheCols();

    case TABLE_PROPERTIES:
      return getTableProperties();

    case STRICT_TYPES:
      return Boolean.valueOf(isStrictTypes());

    case DEFAULT_MISSING_FIELD_TYPE:
      return getDefaultMissingFieldType();

    case DEFAULT_MISSING_FIELD_LESS_INDEXING:
      return Boolean.valueOf(isDefaultMissingFieldLessIndexing());

    case DEFAULT_MISSING_FIELD_PROPS:
      return getDefaultMissingFieldProps();

    }
    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 ENABLED:
      return isSetEnabled();
    case SHARD_COUNT:
      return isSetShardCount();
    case TABLE_URI:
      return isSetTableUri();
    case CLUSTER:
      return isSetCluster();
    case NAME:
      return isSetName();
    case SIMILARITY_CLASS:
      return isSetSimilarityClass();
    case BLOCK_CACHING:
      return isSetBlockCaching();
    case BLOCK_CACHING_FILE_TYPES:
      return isSetBlockCachingFileTypes();
    case READ_ONLY:
      return isSetReadOnly();
    case PRE_CACHE_COLS:
      return isSetPreCacheCols();
    case TABLE_PROPERTIES:
      return isSetTableProperties();
    case STRICT_TYPES:
      return isSetStrictTypes();
    case DEFAULT_MISSING_FIELD_TYPE:
      return isSetDefaultMissingFieldType();
    case DEFAULT_MISSING_FIELD_LESS_INDEXING:
      return isSetDefaultMissingFieldLessIndexing();
    case DEFAULT_MISSING_FIELD_PROPS:
      return isSetDefaultMissingFieldProps();
    }
    throw new IllegalStateException();
  }

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

  public boolean equals(TableDescriptor that) {
    if (that == null)
      return false;

    boolean this_present_enabled = true;
    boolean that_present_enabled = true;
    if (this_present_enabled || that_present_enabled) {
      if (!(this_present_enabled && that_present_enabled))
        return false;
      if (this.enabled != that.enabled)
        return false;
    }

    boolean this_present_shardCount = true;
    boolean that_present_shardCount = true;
    if (this_present_shardCount || that_present_shardCount) {
      if (!(this_present_shardCount && that_present_shardCount))
        return false;
      if (this.shardCount != that.shardCount)
        return false;
    }

    boolean this_present_tableUri = true && this.isSetTableUri();
    boolean that_present_tableUri = true && that.isSetTableUri();
    if (this_present_tableUri || that_present_tableUri) {
      if (!(this_present_tableUri && that_present_tableUri))
        return false;
      if (!this.tableUri.equals(that.tableUri))
        return false;
    }

    boolean this_present_cluster = true && this.isSetCluster();
    boolean that_present_cluster = true && that.isSetCluster();
    if (this_present_cluster || that_present_cluster) {
      if (!(this_present_cluster && that_present_cluster))
        return false;
      if (!this.cluster.equals(that.cluster))
        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_similarityClass = true && this.isSetSimilarityClass();
    boolean that_present_similarityClass = true && that.isSetSimilarityClass();
    if (this_present_similarityClass || that_present_similarityClass) {
      if (!(this_present_similarityClass && that_present_similarityClass))
        return false;
      if (!this.similarityClass.equals(that.similarityClass))
        return false;
    }

    boolean this_present_blockCaching = true;
    boolean that_present_blockCaching = true;
    if (this_present_blockCaching || that_present_blockCaching) {
      if (!(this_present_blockCaching && that_present_blockCaching))
        return false;
      if (this.blockCaching != that.blockCaching)
        return false;
    }

    boolean this_present_blockCachingFileTypes = true && this.isSetBlockCachingFileTypes();
    boolean that_present_blockCachingFileTypes = true && that.isSetBlockCachingFileTypes();
    if (this_present_blockCachingFileTypes || that_present_blockCachingFileTypes) {
      if (!(this_present_blockCachingFileTypes && that_present_blockCachingFileTypes))
        return false;
      if (!this.blockCachingFileTypes.equals(that.blockCachingFileTypes))
        return false;
    }

    boolean this_present_readOnly = true;
    boolean that_present_readOnly = true;
    if (this_present_readOnly || that_present_readOnly) {
      if (!(this_present_readOnly && that_present_readOnly))
        return false;
      if (this.readOnly != that.readOnly)
        return false;
    }

    boolean this_present_preCacheCols = true && this.isSetPreCacheCols();
    boolean that_present_preCacheCols = true && that.isSetPreCacheCols();
    if (this_present_preCacheCols || that_present_preCacheCols) {
      if (!(this_present_preCacheCols && that_present_preCacheCols))
        return false;
      if (!this.preCacheCols.equals(that.preCacheCols))
        return false;
    }

    boolean this_present_tableProperties = true && this.isSetTableProperties();
    boolean that_present_tableProperties = true && that.isSetTableProperties();
    if (this_present_tableProperties || that_present_tableProperties) {
      if (!(this_present_tableProperties && that_present_tableProperties))
        return false;
      if (!this.tableProperties.equals(that.tableProperties))
        return false;
    }

    boolean this_present_strictTypes = true;
    boolean that_present_strictTypes = true;
    if (this_present_strictTypes || that_present_strictTypes) {
      if (!(this_present_strictTypes && that_present_strictTypes))
        return false;
      if (this.strictTypes != that.strictTypes)
        return false;
    }

    boolean this_present_defaultMissingFieldType = true && this.isSetDefaultMissingFieldType();
    boolean that_present_defaultMissingFieldType = true && that.isSetDefaultMissingFieldType();
    if (this_present_defaultMissingFieldType || that_present_defaultMissingFieldType) {
      if (!(this_present_defaultMissingFieldType && that_present_defaultMissingFieldType))
        return false;
      if (!this.defaultMissingFieldType.equals(that.defaultMissingFieldType))
        return false;
    }

    boolean this_present_defaultMissingFieldLessIndexing = true;
    boolean that_present_defaultMissingFieldLessIndexing = true;
    if (this_present_defaultMissingFieldLessIndexing || that_present_defaultMissingFieldLessIndexing) {
      if (!(this_present_defaultMissingFieldLessIndexing && that_present_defaultMissingFieldLessIndexing))
        return false;
      if (this.defaultMissingFieldLessIndexing != that.defaultMissingFieldLessIndexing)
        return false;
    }

    boolean this_present_defaultMissingFieldProps = true && this.isSetDefaultMissingFieldProps();
    boolean that_present_defaultMissingFieldProps = true && that.isSetDefaultMissingFieldProps();
    if (this_present_defaultMissingFieldProps || that_present_defaultMissingFieldProps) {
      if (!(this_present_defaultMissingFieldProps && that_present_defaultMissingFieldProps))
        return false;
      if (!this.defaultMissingFieldProps.equals(that.defaultMissingFieldProps))
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    return 0;
  }

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

    int lastComparison = 0;
    TableDescriptor typedOther = (TableDescriptor)other;

    lastComparison = Boolean.valueOf(isSetEnabled()).compareTo(typedOther.isSetEnabled());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnabled()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.enabled, typedOther.enabled);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetShardCount()).compareTo(typedOther.isSetShardCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShardCount()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.shardCount, typedOther.shardCount);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTableUri()).compareTo(typedOther.isSetTableUri());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableUri()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.tableUri, typedOther.tableUri);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetCluster()).compareTo(typedOther.isSetCluster());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCluster()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.cluster, typedOther.cluster);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetName()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.name, typedOther.name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSimilarityClass()).compareTo(typedOther.isSetSimilarityClass());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSimilarityClass()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.similarityClass, typedOther.similarityClass);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBlockCaching()).compareTo(typedOther.isSetBlockCaching());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBlockCaching()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.blockCaching, typedOther.blockCaching);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetBlockCachingFileTypes()).compareTo(typedOther.isSetBlockCachingFileTypes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBlockCachingFileTypes()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.blockCachingFileTypes, typedOther.blockCachingFileTypes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetReadOnly()).compareTo(typedOther.isSetReadOnly());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReadOnly()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.readOnly, typedOther.readOnly);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPreCacheCols()).compareTo(typedOther.isSetPreCacheCols());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPreCacheCols()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.preCacheCols, typedOther.preCacheCols);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTableProperties()).compareTo(typedOther.isSetTableProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableProperties()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.tableProperties, typedOther.tableProperties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetStrictTypes()).compareTo(typedOther.isSetStrictTypes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStrictTypes()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.strictTypes, typedOther.strictTypes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDefaultMissingFieldType()).compareTo(typedOther.isSetDefaultMissingFieldType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultMissingFieldType()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.defaultMissingFieldType, typedOther.defaultMissingFieldType);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDefaultMissingFieldLessIndexing()).compareTo(typedOther.isSetDefaultMissingFieldLessIndexing());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultMissingFieldLessIndexing()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.defaultMissingFieldLessIndexing, typedOther.defaultMissingFieldLessIndexing);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetDefaultMissingFieldProps()).compareTo(typedOther.isSetDefaultMissingFieldProps());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultMissingFieldProps()) {
      lastComparison = org.apache.blur.thirdparty.thrift_0_9_0.TBaseHelper.compareTo(this.defaultMissingFieldProps, typedOther.defaultMissingFieldProps);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

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

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

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

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

    sb.append("enabled:");
    sb.append(this.enabled);
    first = false;
    if (!first) sb.append(", ");
    sb.append("shardCount:");
    sb.append(this.shardCount);
    first = false;
    if (!first) sb.append(", ");
    sb.append("tableUri:");
    if (this.tableUri == null) {
      sb.append("null");
    } else {
      sb.append(this.tableUri);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("cluster:");
    if (this.cluster == null) {
      sb.append("null");
    } else {
      sb.append(this.cluster);
    }
    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("similarityClass:");
    if (this.similarityClass == null) {
      sb.append("null");
    } else {
      sb.append(this.similarityClass);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("blockCaching:");
    sb.append(this.blockCaching);
    first = false;
    if (!first) sb.append(", ");
    sb.append("blockCachingFileTypes:");
    if (this.blockCachingFileTypes == null) {
      sb.append("null");
    } else {
      sb.append(this.blockCachingFileTypes);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("readOnly:");
    sb.append(this.readOnly);
    first = false;
    if (!first) sb.append(", ");
    sb.append("preCacheCols:");
    if (this.preCacheCols == null) {
      sb.append("null");
    } else {
      sb.append(this.preCacheCols);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("tableProperties:");
    if (this.tableProperties == null) {
      sb.append("null");
    } else {
      sb.append(this.tableProperties);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("strictTypes:");
    sb.append(this.strictTypes);
    first = false;
    if (!first) sb.append(", ");
    sb.append("defaultMissingFieldType:");
    if (this.defaultMissingFieldType == null) {
      sb.append("null");
    } else {
      sb.append(this.defaultMissingFieldType);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("defaultMissingFieldLessIndexing:");
    sb.append(this.defaultMissingFieldLessIndexing);
    first = false;
    if (!first) sb.append(", ");
    sb.append("defaultMissingFieldProps:");
    if (this.defaultMissingFieldProps == null) {
      sb.append("null");
    } else {
      sb.append(this.defaultMissingFieldProps);
    }
    first = false;
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(out)));
    } catch (org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TCompactProtocol(new org.apache.blur.thirdparty.thrift_0_9_0.transport.TIOStreamTransport(in)));
    } catch (org.apache.blur.thirdparty.thrift_0_9_0.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TableDescriptorStandardSchemeFactory implements SchemeFactory {
    public TableDescriptorStandardScheme getScheme() {
      return new TableDescriptorStandardScheme();
    }
  }

  private static class TableDescriptorStandardScheme extends StandardScheme<TableDescriptor> {

    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol iprot, TableDescriptor struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
      org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STOP) {
          break;
        }
        switch (schemeField.id) {
          case 1: // ENABLED
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
              struct.enabled = iprot.readBool();
              struct.setEnabledIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // SHARD_COUNT
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32) {
              struct.shardCount = iprot.readI32();
              struct.setShardCountIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // TABLE_URI
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
              struct.tableUri = iprot.readString();
              struct.setTableUriIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // CLUSTER
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
              struct.cluster = iprot.readString();
              struct.setClusterIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // NAME
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
              struct.name = iprot.readString();
              struct.setNameIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // SIMILARITY_CLASS
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
              struct.similarityClass = iprot.readString();
              struct.setSimilarityClassIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // BLOCK_CACHING
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
              struct.blockCaching = iprot.readBool();
              struct.setBlockCachingIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // BLOCK_CACHING_FILE_TYPES
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET) {
              {
                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set132 = iprot.readSetBegin();
                struct.blockCachingFileTypes = new HashSet<String>(2*_set132.size);
                for (int _i133 = 0; _i133 < _set132.size; ++_i133)
                {
                  String _elem134; // required
                  _elem134 = iprot.readString();
                  struct.blockCachingFileTypes.add(_elem134);
                }
                iprot.readSetEnd();
              }
              struct.setBlockCachingFileTypesIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // READ_ONLY
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
              struct.readOnly = iprot.readBool();
              struct.setReadOnlyIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // PRE_CACHE_COLS
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST) {
              {
                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list135 = iprot.readListBegin();
                struct.preCacheCols = new ArrayList<String>(_list135.size);
                for (int _i136 = 0; _i136 < _list135.size; ++_i136)
                {
                  String _elem137; // required
                  _elem137 = iprot.readString();
                  struct.preCacheCols.add(_elem137);
                }
                iprot.readListEnd();
              }
              struct.setPreCacheColsIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // TABLE_PROPERTIES
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP) {
              {
                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap _map138 = iprot.readMapBegin();
                struct.tableProperties = new HashMap<String,String>(2*_map138.size);
                for (int _i139 = 0; _i139 < _map138.size; ++_i139)
                {
                  String _key140; // required
                  String _val141; // optional
                  _key140 = iprot.readString();
                  _val141 = iprot.readString();
                  struct.tableProperties.put(_key140, _val141);
                }
                iprot.readMapEnd();
              }
              struct.setTablePropertiesIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // STRICT_TYPES
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
              struct.strictTypes = iprot.readBool();
              struct.setStrictTypesIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // DEFAULT_MISSING_FIELD_TYPE
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING) {
              struct.defaultMissingFieldType = iprot.readString();
              struct.setDefaultMissingFieldTypeIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // DEFAULT_MISSING_FIELD_LESS_INDEXING
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL) {
              struct.defaultMissingFieldLessIndexing = iprot.readBool();
              struct.setDefaultMissingFieldLessIndexingIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // DEFAULT_MISSING_FIELD_PROPS
            if (schemeField.type == org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP) {
              {
                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap _map142 = iprot.readMapBegin();
                struct.defaultMissingFieldProps = new HashMap<String,String>(2*_map142.size);
                for (int _i143 = 0; _i143 < _map142.size; ++_i143)
                {
                  String _key144; // required
                  String _val145; // optional
                  _key144 = iprot.readString();
                  _val145 = iprot.readString();
                  struct.defaultMissingFieldProps.put(_key144, _val145);
                }
                iprot.readMapEnd();
              }
              struct.setDefaultMissingFieldPropsIsSet(true);
            } else {
              org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.blur.thirdparty.thrift_0_9_0.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.blur.thirdparty.thrift_0_9_0.protocol.TProtocol oprot, TableDescriptor struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ENABLED_FIELD_DESC);
      oprot.writeBool(struct.enabled);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(SHARD_COUNT_FIELD_DESC);
      oprot.writeI32(struct.shardCount);
      oprot.writeFieldEnd();
      if (struct.tableUri != null) {
        oprot.writeFieldBegin(TABLE_URI_FIELD_DESC);
        oprot.writeString(struct.tableUri);
        oprot.writeFieldEnd();
      }
      if (struct.cluster != null) {
        oprot.writeFieldBegin(CLUSTER_FIELD_DESC);
        oprot.writeString(struct.cluster);
        oprot.writeFieldEnd();
      }
      if (struct.name != null) {
        oprot.writeFieldBegin(NAME_FIELD_DESC);
        oprot.writeString(struct.name);
        oprot.writeFieldEnd();
      }
      if (struct.similarityClass != null) {
        oprot.writeFieldBegin(SIMILARITY_CLASS_FIELD_DESC);
        oprot.writeString(struct.similarityClass);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(BLOCK_CACHING_FIELD_DESC);
      oprot.writeBool(struct.blockCaching);
      oprot.writeFieldEnd();
      if (struct.blockCachingFileTypes != null) {
        oprot.writeFieldBegin(BLOCK_CACHING_FILE_TYPES_FIELD_DESC);
        {
          oprot.writeSetBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, struct.blockCachingFileTypes.size()));
          for (String _iter146 : struct.blockCachingFileTypes)
          {
            oprot.writeString(_iter146);
          }
          oprot.writeSetEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(READ_ONLY_FIELD_DESC);
      oprot.writeBool(struct.readOnly);
      oprot.writeFieldEnd();
      if (struct.preCacheCols != null) {
        oprot.writeFieldBegin(PRE_CACHE_COLS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, struct.preCacheCols.size()));
          for (String _iter147 : struct.preCacheCols)
          {
            oprot.writeString(_iter147);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.tableProperties != null) {
        oprot.writeFieldBegin(TABLE_PROPERTIES_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, struct.tableProperties.size()));
          for (Map.Entry<String, String> _iter148 : struct.tableProperties.entrySet())
          {
            oprot.writeString(_iter148.getKey());
            oprot.writeString(_iter148.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(STRICT_TYPES_FIELD_DESC);
      oprot.writeBool(struct.strictTypes);
      oprot.writeFieldEnd();
      if (struct.defaultMissingFieldType != null) {
        oprot.writeFieldBegin(DEFAULT_MISSING_FIELD_TYPE_FIELD_DESC);
        oprot.writeString(struct.defaultMissingFieldType);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(DEFAULT_MISSING_FIELD_LESS_INDEXING_FIELD_DESC);
      oprot.writeBool(struct.defaultMissingFieldLessIndexing);
      oprot.writeFieldEnd();
      if (struct.defaultMissingFieldProps != null) {
        oprot.writeFieldBegin(DEFAULT_MISSING_FIELD_PROPS_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, struct.defaultMissingFieldProps.size()));
          for (Map.Entry<String, String> _iter149 : struct.defaultMissingFieldProps.entrySet())
          {
            oprot.writeString(_iter149.getKey());
            oprot.writeString(_iter149.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TableDescriptorTupleSchemeFactory implements SchemeFactory {
    public TableDescriptorTupleScheme getScheme() {
      return new TableDescriptorTupleScheme();
    }
  }

  private static class TableDescriptorTupleScheme extends TupleScheme<TableDescriptor> {

    @Override
    public void write(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, TableDescriptor struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
      TTupleProtocol oprot = (TTupleProtocol) prot;
      BitSet optionals = new BitSet();
      if (struct.isSetEnabled()) {
        optionals.set(0);
      }
      if (struct.isSetShardCount()) {
        optionals.set(1);
      }
      if (struct.isSetTableUri()) {
        optionals.set(2);
      }
      if (struct.isSetCluster()) {
        optionals.set(3);
      }
      if (struct.isSetName()) {
        optionals.set(4);
      }
      if (struct.isSetSimilarityClass()) {
        optionals.set(5);
      }
      if (struct.isSetBlockCaching()) {
        optionals.set(6);
      }
      if (struct.isSetBlockCachingFileTypes()) {
        optionals.set(7);
      }
      if (struct.isSetReadOnly()) {
        optionals.set(8);
      }
      if (struct.isSetPreCacheCols()) {
        optionals.set(9);
      }
      if (struct.isSetTableProperties()) {
        optionals.set(10);
      }
      if (struct.isSetStrictTypes()) {
        optionals.set(11);
      }
      if (struct.isSetDefaultMissingFieldType()) {
        optionals.set(12);
      }
      if (struct.isSetDefaultMissingFieldLessIndexing()) {
        optionals.set(13);
      }
      if (struct.isSetDefaultMissingFieldProps()) {
        optionals.set(14);
      }
      oprot.writeBitSet(optionals, 15);
      if (struct.isSetEnabled()) {
        oprot.writeBool(struct.enabled);
      }
      if (struct.isSetShardCount()) {
        oprot.writeI32(struct.shardCount);
      }
      if (struct.isSetTableUri()) {
        oprot.writeString(struct.tableUri);
      }
      if (struct.isSetCluster()) {
        oprot.writeString(struct.cluster);
      }
      if (struct.isSetName()) {
        oprot.writeString(struct.name);
      }
      if (struct.isSetSimilarityClass()) {
        oprot.writeString(struct.similarityClass);
      }
      if (struct.isSetBlockCaching()) {
        oprot.writeBool(struct.blockCaching);
      }
      if (struct.isSetBlockCachingFileTypes()) {
        {
          oprot.writeI32(struct.blockCachingFileTypes.size());
          for (String _iter150 : struct.blockCachingFileTypes)
          {
            oprot.writeString(_iter150);
          }
        }
      }
      if (struct.isSetReadOnly()) {
        oprot.writeBool(struct.readOnly);
      }
      if (struct.isSetPreCacheCols()) {
        {
          oprot.writeI32(struct.preCacheCols.size());
          for (String _iter151 : struct.preCacheCols)
          {
            oprot.writeString(_iter151);
          }
        }
      }
      if (struct.isSetTableProperties()) {
        {
          oprot.writeI32(struct.tableProperties.size());
          for (Map.Entry<String, String> _iter152 : struct.tableProperties.entrySet())
          {
            oprot.writeString(_iter152.getKey());
            oprot.writeString(_iter152.getValue());
          }
        }
      }
      if (struct.isSetStrictTypes()) {
        oprot.writeBool(struct.strictTypes);
      }
      if (struct.isSetDefaultMissingFieldType()) {
        oprot.writeString(struct.defaultMissingFieldType);
      }
      if (struct.isSetDefaultMissingFieldLessIndexing()) {
        oprot.writeBool(struct.defaultMissingFieldLessIndexing);
      }
      if (struct.isSetDefaultMissingFieldProps()) {
        {
          oprot.writeI32(struct.defaultMissingFieldProps.size());
          for (Map.Entry<String, String> _iter153 : struct.defaultMissingFieldProps.entrySet())
          {
            oprot.writeString(_iter153.getKey());
            oprot.writeString(_iter153.getValue());
          }
        }
      }
    }

    @Override
    public void read(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TProtocol prot, TableDescriptor struct) throws org.apache.blur.thirdparty.thrift_0_9_0.TException {
      TTupleProtocol iprot = (TTupleProtocol) prot;
      BitSet incoming = iprot.readBitSet(15);
      if (incoming.get(0)) {
        struct.enabled = iprot.readBool();
        struct.setEnabledIsSet(true);
      }
      if (incoming.get(1)) {
        struct.shardCount = iprot.readI32();
        struct.setShardCountIsSet(true);
      }
      if (incoming.get(2)) {
        struct.tableUri = iprot.readString();
        struct.setTableUriIsSet(true);
      }
      if (incoming.get(3)) {
        struct.cluster = iprot.readString();
        struct.setClusterIsSet(true);
      }
      if (incoming.get(4)) {
        struct.name = iprot.readString();
        struct.setNameIsSet(true);
      }
      if (incoming.get(5)) {
        struct.similarityClass = iprot.readString();
        struct.setSimilarityClassIsSet(true);
      }
      if (incoming.get(6)) {
        struct.blockCaching = iprot.readBool();
        struct.setBlockCachingIsSet(true);
      }
      if (incoming.get(7)) {
        {
          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set154 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, iprot.readI32());
          struct.blockCachingFileTypes = new HashSet<String>(2*_set154.size);
          for (int _i155 = 0; _i155 < _set154.size; ++_i155)
          {
            String _elem156; // required
            _elem156 = iprot.readString();
            struct.blockCachingFileTypes.add(_elem156);
          }
        }
        struct.setBlockCachingFileTypesIsSet(true);
      }
      if (incoming.get(8)) {
        struct.readOnly = iprot.readBool();
        struct.setReadOnlyIsSet(true);
      }
      if (incoming.get(9)) {
        {
          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list157 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, iprot.readI32());
          struct.preCacheCols = new ArrayList<String>(_list157.size);
          for (int _i158 = 0; _i158 < _list157.size; ++_i158)
          {
            String _elem159; // required
            _elem159 = iprot.readString();
            struct.preCacheCols.add(_elem159);
          }
        }
        struct.setPreCacheColsIsSet(true);
      }
      if (incoming.get(10)) {
        {
          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap _map160 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, iprot.readI32());
          struct.tableProperties = new HashMap<String,String>(2*_map160.size);
          for (int _i161 = 0; _i161 < _map160.size; ++_i161)
          {
            String _key162; // required
            String _val163; // optional
            _key162 = iprot.readString();
            _val163 = iprot.readString();
            struct.tableProperties.put(_key162, _val163);
          }
        }
        struct.setTablePropertiesIsSet(true);
      }
      if (incoming.get(11)) {
        struct.strictTypes = iprot.readBool();
        struct.setStrictTypesIsSet(true);
      }
      if (incoming.get(12)) {
        struct.defaultMissingFieldType = iprot.readString();
        struct.setDefaultMissingFieldTypeIsSet(true);
      }
      if (incoming.get(13)) {
        struct.defaultMissingFieldLessIndexing = iprot.readBool();
        struct.setDefaultMissingFieldLessIndexingIsSet(true);
      }
      if (incoming.get(14)) {
        {
          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap _map164 = new org.apache.blur.thirdparty.thrift_0_9_0.protocol.TMap(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, iprot.readI32());
          struct.defaultMissingFieldProps = new HashMap<String,String>(2*_map164.size);
          for (int _i165 = 0; _i165 < _map164.size; ++_i165)
          {
            String _key166; // required
            String _val167; // optional
            _key166 = iprot.readString();
            _val167 = iprot.readString();
            struct.defaultMissingFieldProps.put(_key166, _val167);
          }
        }
        struct.setDefaultMissingFieldPropsIsSet(true);
      }
    }
  }

}
TOP

Related Classes of org.apache.blur.thrift.generated.TableDescriptor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.