/*
 * 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
 *
 *   https://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.
 */
/**
 * Autogenerated by Thrift Compiler (0.17.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.accumulo.core.tabletserver.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
public class TExternalCompactionJob implements org.apache.thrift.TBase<TExternalCompactionJob, TExternalCompactionJob._Fields>, java.io.Serializable, Cloneable, Comparable<TExternalCompactionJob> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TExternalCompactionJob");

  private static final org.apache.thrift.protocol.TField EXTERNAL_COMPACTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("externalCompactionId", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField EXTENT_FIELD_DESC = new org.apache.thrift.protocol.TField("extent", org.apache.thrift.protocol.TType.STRUCT, (short)2);
  private static final org.apache.thrift.protocol.TField FILES_FIELD_DESC = new org.apache.thrift.protocol.TField("files", org.apache.thrift.protocol.TType.LIST, (short)3);
  private static final org.apache.thrift.protocol.TField ITERATOR_SETTINGS_FIELD_DESC = new org.apache.thrift.protocol.TField("iteratorSettings", org.apache.thrift.protocol.TType.STRUCT, (short)4);
  private static final org.apache.thrift.protocol.TField OUTPUT_FILE_FIELD_DESC = new org.apache.thrift.protocol.TField("outputFile", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField PROPAGATE_DELETES_FIELD_DESC = new org.apache.thrift.protocol.TField("propagateDeletes", org.apache.thrift.protocol.TType.BOOL, (short)6);
  private static final org.apache.thrift.protocol.TField KIND_FIELD_DESC = new org.apache.thrift.protocol.TField("kind", org.apache.thrift.protocol.TType.I32, (short)7);
  private static final org.apache.thrift.protocol.TField FATE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("fateId", org.apache.thrift.protocol.TType.STRUCT, (short)8);
  private static final org.apache.thrift.protocol.TField OVERRIDES_FIELD_DESC = new org.apache.thrift.protocol.TField("overrides", org.apache.thrift.protocol.TType.MAP, (short)9);

  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TExternalCompactionJobStandardSchemeFactory();
  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TExternalCompactionJobTupleSchemeFactory();

  public @org.apache.thrift.annotation.Nullable java.lang.String externalCompactionId; // required
  public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<InputFile> files; // required
  public @org.apache.thrift.annotation.Nullable IteratorConfig iteratorSettings; // required
  public @org.apache.thrift.annotation.Nullable java.lang.String outputFile; // required
  public boolean propagateDeletes; // required
  public @org.apache.thrift.annotation.Nullable TCompactionKind kind; // required
  public @org.apache.thrift.annotation.Nullable org.apache.accumulo.core.manager.thrift.TFateId fateId; // required
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> overrides; // required

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    EXTERNAL_COMPACTION_ID((short)1, "externalCompactionId"),
    EXTENT((short)2, "extent"),
    FILES((short)3, "files"),
    ITERATOR_SETTINGS((short)4, "iteratorSettings"),
    OUTPUT_FILE((short)5, "outputFile"),
    PROPAGATE_DELETES((short)6, "propagateDeletes"),
    KIND((short)7, "kind"),
    FATE_ID((short)8, "fateId"),
    OVERRIDES((short)9, "overrides");

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

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

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // EXTERNAL_COMPACTION_ID
          return EXTERNAL_COMPACTION_ID;
        case 2: // EXTENT
          return EXTENT;
        case 3: // FILES
          return FILES;
        case 4: // ITERATOR_SETTINGS
          return ITERATOR_SETTINGS;
        case 5: // OUTPUT_FILE
          return OUTPUT_FILE;
        case 6: // PROPAGATE_DELETES
          return PROPAGATE_DELETES;
        case 7: // KIND
          return KIND;
        case 8: // FATE_ID
          return FATE_ID;
        case 9: // OVERRIDES
          return OVERRIDES;
        default:
          return null;
      }
    }

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

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByName(java.lang.String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final java.lang.String _fieldName;

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

    @Override
    public short getThriftFieldId() {
      return _thriftId;
    }

    @Override
    public java.lang.String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __PROPAGATEDELETES_ISSET_ID = 0;
  private byte __isset_bitfield = 0;
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.EXTERNAL_COMPACTION_ID, new org.apache.thrift.meta_data.FieldMetaData("externalCompactionId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.EXTENT, new org.apache.thrift.meta_data.FieldMetaData("extent", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.dataImpl.thrift.TKeyExtent.class)));
    tmpMap.put(_Fields.FILES, new org.apache.thrift.meta_data.FieldMetaData("files", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InputFile.class))));
    tmpMap.put(_Fields.ITERATOR_SETTINGS, new org.apache.thrift.meta_data.FieldMetaData("iteratorSettings", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, IteratorConfig.class)));
    tmpMap.put(_Fields.OUTPUT_FILE, new org.apache.thrift.meta_data.FieldMetaData("outputFile", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PROPAGATE_DELETES, new org.apache.thrift.meta_data.FieldMetaData("propagateDeletes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.KIND, new org.apache.thrift.meta_data.FieldMetaData("kind", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.ENUM        , "TCompactionKind")));
    tmpMap.put(_Fields.FATE_ID, new org.apache.thrift.meta_data.FieldMetaData("fateId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.accumulo.core.manager.thrift.TFateId.class)));
    tmpMap.put(_Fields.OVERRIDES, new org.apache.thrift.meta_data.FieldMetaData("overrides", org.apache.thrift.TFieldRequirementType.DEFAULT, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TExternalCompactionJob.class, metaDataMap);
  }

  public TExternalCompactionJob() {
  }

  public TExternalCompactionJob(
    java.lang.String externalCompactionId,
    org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent,
    java.util.List<InputFile> files,
    IteratorConfig iteratorSettings,
    java.lang.String outputFile,
    boolean propagateDeletes,
    TCompactionKind kind,
    org.apache.accumulo.core.manager.thrift.TFateId fateId,
    java.util.Map<java.lang.String,java.lang.String> overrides)
  {
    this();
    this.externalCompactionId = externalCompactionId;
    this.extent = extent;
    this.files = files;
    this.iteratorSettings = iteratorSettings;
    this.outputFile = outputFile;
    this.propagateDeletes = propagateDeletes;
    setPropagateDeletesIsSet(true);
    this.kind = kind;
    this.fateId = fateId;
    this.overrides = overrides;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TExternalCompactionJob(TExternalCompactionJob other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetExternalCompactionId()) {
      this.externalCompactionId = other.externalCompactionId;
    }
    if (other.isSetExtent()) {
      this.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent(other.extent);
    }
    if (other.isSetFiles()) {
      java.util.List<InputFile> __this__files = new java.util.ArrayList<InputFile>(other.files.size());
      for (InputFile other_element : other.files) {
        __this__files.add(new InputFile(other_element));
      }
      this.files = __this__files;
    }
    if (other.isSetIteratorSettings()) {
      this.iteratorSettings = new IteratorConfig(other.iteratorSettings);
    }
    if (other.isSetOutputFile()) {
      this.outputFile = other.outputFile;
    }
    this.propagateDeletes = other.propagateDeletes;
    if (other.isSetKind()) {
      this.kind = other.kind;
    }
    if (other.isSetFateId()) {
      this.fateId = new org.apache.accumulo.core.manager.thrift.TFateId(other.fateId);
    }
    if (other.isSetOverrides()) {
      java.util.Map<java.lang.String,java.lang.String> __this__overrides = new java.util.HashMap<java.lang.String,java.lang.String>(other.overrides);
      this.overrides = __this__overrides;
    }
  }

  @Override
  public TExternalCompactionJob deepCopy() {
    return new TExternalCompactionJob(this);
  }

  @Override
  public void clear() {
    this.externalCompactionId = null;
    this.extent = null;
    this.files = null;
    this.iteratorSettings = null;
    this.outputFile = null;
    setPropagateDeletesIsSet(false);
    this.propagateDeletes = false;
    this.kind = null;
    this.fateId = null;
    this.overrides = null;
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getExternalCompactionId() {
    return this.externalCompactionId;
  }

  public TExternalCompactionJob setExternalCompactionId(@org.apache.thrift.annotation.Nullable java.lang.String externalCompactionId) {
    this.externalCompactionId = externalCompactionId;
    return this;
  }

  public void unsetExternalCompactionId() {
    this.externalCompactionId = null;
  }

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

  public void setExternalCompactionIdIsSet(boolean value) {
    if (!value) {
      this.externalCompactionId = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public org.apache.accumulo.core.dataImpl.thrift.TKeyExtent getExtent() {
    return this.extent;
  }

  public TExternalCompactionJob setExtent(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.dataImpl.thrift.TKeyExtent extent) {
    this.extent = extent;
    return this;
  }

  public void unsetExtent() {
    this.extent = null;
  }

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

  public void setExtentIsSet(boolean value) {
    if (!value) {
      this.extent = null;
    }
  }

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

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<InputFile> getFilesIterator() {
    return (this.files == null) ? null : this.files.iterator();
  }

  public void addToFiles(InputFile elem) {
    if (this.files == null) {
      this.files = new java.util.ArrayList<InputFile>();
    }
    this.files.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<InputFile> getFiles() {
    return this.files;
  }

  public TExternalCompactionJob setFiles(@org.apache.thrift.annotation.Nullable java.util.List<InputFile> files) {
    this.files = files;
    return this;
  }

  public void unsetFiles() {
    this.files = null;
  }

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

  public void setFilesIsSet(boolean value) {
    if (!value) {
      this.files = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public IteratorConfig getIteratorSettings() {
    return this.iteratorSettings;
  }

  public TExternalCompactionJob setIteratorSettings(@org.apache.thrift.annotation.Nullable IteratorConfig iteratorSettings) {
    this.iteratorSettings = iteratorSettings;
    return this;
  }

  public void unsetIteratorSettings() {
    this.iteratorSettings = null;
  }

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

  public void setIteratorSettingsIsSet(boolean value) {
    if (!value) {
      this.iteratorSettings = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getOutputFile() {
    return this.outputFile;
  }

  public TExternalCompactionJob setOutputFile(@org.apache.thrift.annotation.Nullable java.lang.String outputFile) {
    this.outputFile = outputFile;
    return this;
  }

  public void unsetOutputFile() {
    this.outputFile = null;
  }

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

  public void setOutputFileIsSet(boolean value) {
    if (!value) {
      this.outputFile = null;
    }
  }

  public boolean isPropagateDeletes() {
    return this.propagateDeletes;
  }

  public TExternalCompactionJob setPropagateDeletes(boolean propagateDeletes) {
    this.propagateDeletes = propagateDeletes;
    setPropagateDeletesIsSet(true);
    return this;
  }

  public void unsetPropagateDeletes() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __PROPAGATEDELETES_ISSET_ID);
  }

  /** Returns true if field propagateDeletes is set (has been assigned a value) and false otherwise */
  public boolean isSetPropagateDeletes() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __PROPAGATEDELETES_ISSET_ID);
  }

  public void setPropagateDeletesIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __PROPAGATEDELETES_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public TCompactionKind getKind() {
    return this.kind;
  }

  public TExternalCompactionJob setKind(@org.apache.thrift.annotation.Nullable TCompactionKind kind) {
    this.kind = kind;
    return this;
  }

  public void unsetKind() {
    this.kind = null;
  }

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

  public void setKindIsSet(boolean value) {
    if (!value) {
      this.kind = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public org.apache.accumulo.core.manager.thrift.TFateId getFateId() {
    return this.fateId;
  }

  public TExternalCompactionJob setFateId(@org.apache.thrift.annotation.Nullable org.apache.accumulo.core.manager.thrift.TFateId fateId) {
    this.fateId = fateId;
    return this;
  }

  public void unsetFateId() {
    this.fateId = null;
  }

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

  public void setFateIdIsSet(boolean value) {
    if (!value) {
      this.fateId = null;
    }
  }

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

  public void putToOverrides(java.lang.String key, java.lang.String val) {
    if (this.overrides == null) {
      this.overrides = new java.util.HashMap<java.lang.String,java.lang.String>();
    }
    this.overrides.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.lang.String> getOverrides() {
    return this.overrides;
  }

  public TExternalCompactionJob setOverrides(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> overrides) {
    this.overrides = overrides;
    return this;
  }

  public void unsetOverrides() {
    this.overrides = null;
  }

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

  public void setOverridesIsSet(boolean value) {
    if (!value) {
      this.overrides = null;
    }
  }

  @Override
  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case EXTERNAL_COMPACTION_ID:
      if (value == null) {
        unsetExternalCompactionId();
      } else {
        setExternalCompactionId((java.lang.String)value);
      }
      break;

    case EXTENT:
      if (value == null) {
        unsetExtent();
      } else {
        setExtent((org.apache.accumulo.core.dataImpl.thrift.TKeyExtent)value);
      }
      break;

    case FILES:
      if (value == null) {
        unsetFiles();
      } else {
        setFiles((java.util.List<InputFile>)value);
      }
      break;

    case ITERATOR_SETTINGS:
      if (value == null) {
        unsetIteratorSettings();
      } else {
        setIteratorSettings((IteratorConfig)value);
      }
      break;

    case OUTPUT_FILE:
      if (value == null) {
        unsetOutputFile();
      } else {
        setOutputFile((java.lang.String)value);
      }
      break;

    case PROPAGATE_DELETES:
      if (value == null) {
        unsetPropagateDeletes();
      } else {
        setPropagateDeletes((java.lang.Boolean)value);
      }
      break;

    case KIND:
      if (value == null) {
        unsetKind();
      } else {
        setKind((TCompactionKind)value);
      }
      break;

    case FATE_ID:
      if (value == null) {
        unsetFateId();
      } else {
        setFateId((org.apache.accumulo.core.manager.thrift.TFateId)value);
      }
      break;

    case OVERRIDES:
      if (value == null) {
        unsetOverrides();
      } else {
        setOverrides((java.util.Map<java.lang.String,java.lang.String>)value);
      }
      break;

    }
  }

  @org.apache.thrift.annotation.Nullable
  @Override
  public java.lang.Object getFieldValue(_Fields field) {
    switch (field) {
    case EXTERNAL_COMPACTION_ID:
      return getExternalCompactionId();

    case EXTENT:
      return getExtent();

    case FILES:
      return getFiles();

    case ITERATOR_SETTINGS:
      return getIteratorSettings();

    case OUTPUT_FILE:
      return getOutputFile();

    case PROPAGATE_DELETES:
      return isPropagateDeletes();

    case KIND:
      return getKind();

    case FATE_ID:
      return getFateId();

    case OVERRIDES:
      return getOverrides();

    }
    throw new java.lang.IllegalStateException();
  }

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

    switch (field) {
    case EXTERNAL_COMPACTION_ID:
      return isSetExternalCompactionId();
    case EXTENT:
      return isSetExtent();
    case FILES:
      return isSetFiles();
    case ITERATOR_SETTINGS:
      return isSetIteratorSettings();
    case OUTPUT_FILE:
      return isSetOutputFile();
    case PROPAGATE_DELETES:
      return isSetPropagateDeletes();
    case KIND:
      return isSetKind();
    case FATE_ID:
      return isSetFateId();
    case OVERRIDES:
      return isSetOverrides();
    }
    throw new java.lang.IllegalStateException();
  }

  @Override
  public boolean equals(java.lang.Object that) {
    if (that instanceof TExternalCompactionJob)
      return this.equals((TExternalCompactionJob)that);
    return false;
  }

  public boolean equals(TExternalCompactionJob that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_externalCompactionId = true && this.isSetExternalCompactionId();
    boolean that_present_externalCompactionId = true && that.isSetExternalCompactionId();
    if (this_present_externalCompactionId || that_present_externalCompactionId) {
      if (!(this_present_externalCompactionId && that_present_externalCompactionId))
        return false;
      if (!this.externalCompactionId.equals(that.externalCompactionId))
        return false;
    }

    boolean this_present_extent = true && this.isSetExtent();
    boolean that_present_extent = true && that.isSetExtent();
    if (this_present_extent || that_present_extent) {
      if (!(this_present_extent && that_present_extent))
        return false;
      if (!this.extent.equals(that.extent))
        return false;
    }

    boolean this_present_files = true && this.isSetFiles();
    boolean that_present_files = true && that.isSetFiles();
    if (this_present_files || that_present_files) {
      if (!(this_present_files && that_present_files))
        return false;
      if (!this.files.equals(that.files))
        return false;
    }

    boolean this_present_iteratorSettings = true && this.isSetIteratorSettings();
    boolean that_present_iteratorSettings = true && that.isSetIteratorSettings();
    if (this_present_iteratorSettings || that_present_iteratorSettings) {
      if (!(this_present_iteratorSettings && that_present_iteratorSettings))
        return false;
      if (!this.iteratorSettings.equals(that.iteratorSettings))
        return false;
    }

    boolean this_present_outputFile = true && this.isSetOutputFile();
    boolean that_present_outputFile = true && that.isSetOutputFile();
    if (this_present_outputFile || that_present_outputFile) {
      if (!(this_present_outputFile && that_present_outputFile))
        return false;
      if (!this.outputFile.equals(that.outputFile))
        return false;
    }

    boolean this_present_propagateDeletes = true;
    boolean that_present_propagateDeletes = true;
    if (this_present_propagateDeletes || that_present_propagateDeletes) {
      if (!(this_present_propagateDeletes && that_present_propagateDeletes))
        return false;
      if (this.propagateDeletes != that.propagateDeletes)
        return false;
    }

    boolean this_present_kind = true && this.isSetKind();
    boolean that_present_kind = true && that.isSetKind();
    if (this_present_kind || that_present_kind) {
      if (!(this_present_kind && that_present_kind))
        return false;
      if (!this.kind.equals(that.kind))
        return false;
    }

    boolean this_present_fateId = true && this.isSetFateId();
    boolean that_present_fateId = true && that.isSetFateId();
    if (this_present_fateId || that_present_fateId) {
      if (!(this_present_fateId && that_present_fateId))
        return false;
      if (!this.fateId.equals(that.fateId))
        return false;
    }

    boolean this_present_overrides = true && this.isSetOverrides();
    boolean that_present_overrides = true && that.isSetOverrides();
    if (this_present_overrides || that_present_overrides) {
      if (!(this_present_overrides && that_present_overrides))
        return false;
      if (!this.overrides.equals(that.overrides))
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetExternalCompactionId()) ? 131071 : 524287);
    if (isSetExternalCompactionId())
      hashCode = hashCode * 8191 + externalCompactionId.hashCode();

    hashCode = hashCode * 8191 + ((isSetExtent()) ? 131071 : 524287);
    if (isSetExtent())
      hashCode = hashCode * 8191 + extent.hashCode();

    hashCode = hashCode * 8191 + ((isSetFiles()) ? 131071 : 524287);
    if (isSetFiles())
      hashCode = hashCode * 8191 + files.hashCode();

    hashCode = hashCode * 8191 + ((isSetIteratorSettings()) ? 131071 : 524287);
    if (isSetIteratorSettings())
      hashCode = hashCode * 8191 + iteratorSettings.hashCode();

    hashCode = hashCode * 8191 + ((isSetOutputFile()) ? 131071 : 524287);
    if (isSetOutputFile())
      hashCode = hashCode * 8191 + outputFile.hashCode();

    hashCode = hashCode * 8191 + ((propagateDeletes) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetKind()) ? 131071 : 524287);
    if (isSetKind())
      hashCode = hashCode * 8191 + kind.getValue();

    hashCode = hashCode * 8191 + ((isSetFateId()) ? 131071 : 524287);
    if (isSetFateId())
      hashCode = hashCode * 8191 + fateId.hashCode();

    hashCode = hashCode * 8191 + ((isSetOverrides()) ? 131071 : 524287);
    if (isSetOverrides())
      hashCode = hashCode * 8191 + overrides.hashCode();

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetExternalCompactionId(), other.isSetExternalCompactionId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExternalCompactionId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.externalCompactionId, other.externalCompactionId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetExtent(), other.isSetExtent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExtent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.extent, other.extent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFiles(), other.isSetFiles());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFiles()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.files, other.files);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIteratorSettings(), other.isSetIteratorSettings());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIteratorSettings()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.iteratorSettings, other.iteratorSettings);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetOutputFile(), other.isSetOutputFile());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOutputFile()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.outputFile, other.outputFile);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPropagateDeletes(), other.isSetPropagateDeletes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPropagateDeletes()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.propagateDeletes, other.propagateDeletes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetKind(), other.isSetKind());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetKind()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.kind, other.kind);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFateId(), other.isSetFateId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFateId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fateId, other.fateId);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetOverrides(), other.isSetOverrides());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOverrides()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrides, other.overrides);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  @org.apache.thrift.annotation.Nullable
  @Override
  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  @Override
  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    scheme(iprot).read(iprot, this);
  }

  @Override
  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    scheme(oprot).write(oprot, this);
  }

  @Override
  public java.lang.String toString() {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("TExternalCompactionJob(");
    boolean first = true;

    sb.append("externalCompactionId:");
    if (this.externalCompactionId == null) {
      sb.append("null");
    } else {
      sb.append(this.externalCompactionId);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("extent:");
    if (this.extent == null) {
      sb.append("null");
    } else {
      sb.append(this.extent);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("files:");
    if (this.files == null) {
      sb.append("null");
    } else {
      sb.append(this.files);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("iteratorSettings:");
    if (this.iteratorSettings == null) {
      sb.append("null");
    } else {
      sb.append(this.iteratorSettings);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("outputFile:");
    if (this.outputFile == null) {
      sb.append("null");
    } else {
      sb.append(this.outputFile);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("propagateDeletes:");
    sb.append(this.propagateDeletes);
    first = false;
    if (!first) sb.append(", ");
    sb.append("kind:");
    if (this.kind == null) {
      sb.append("null");
    } else {
      sb.append(this.kind);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("fateId:");
    if (this.fateId == null) {
      sb.append("null");
    } else {
      sb.append(this.fateId);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("overrides:");
    if (this.overrides == null) {
      sb.append("null");
    } else {
      sb.append(this.overrides);
    }
    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 (extent != null) {
      extent.validate();
    }
    if (iteratorSettings != null) {
      iteratorSettings.validate();
    }
    if (fateId != null) {
      fateId.validate();
    }
  }

  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
    try {
      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TExternalCompactionJobStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    @Override
    public TExternalCompactionJobStandardScheme getScheme() {
      return new TExternalCompactionJobStandardScheme();
    }
  }

  private static class TExternalCompactionJobStandardScheme extends org.apache.thrift.scheme.StandardScheme<TExternalCompactionJob> {

    @Override
    public void read(org.apache.thrift.protocol.TProtocol iprot, TExternalCompactionJob struct) throws org.apache.thrift.TException {
      org.apache.thrift.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: // EXTERNAL_COMPACTION_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.externalCompactionId = iprot.readString();
              struct.setExternalCompactionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // EXTENT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
              struct.extent.read(iprot);
              struct.setExtentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // FILES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list54 = iprot.readListBegin();
                struct.files = new java.util.ArrayList<InputFile>(_list54.size);
                @org.apache.thrift.annotation.Nullable InputFile _elem55;
                for (int _i56 = 0; _i56 < _list54.size; ++_i56)
                {
                  _elem55 = new InputFile();
                  _elem55.read(iprot);
                  struct.files.add(_elem55);
                }
                iprot.readListEnd();
              }
              struct.setFilesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // ITERATOR_SETTINGS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.iteratorSettings = new IteratorConfig();
              struct.iteratorSettings.read(iprot);
              struct.setIteratorSettingsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // OUTPUT_FILE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.outputFile = iprot.readString();
              struct.setOutputFileIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // PROPAGATE_DELETES
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.propagateDeletes = iprot.readBool();
              struct.setPropagateDeletesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // KIND
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.kind = org.apache.accumulo.core.tabletserver.thrift.TCompactionKind.findByValue(iprot.readI32());
              struct.setKindIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // FATE_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.fateId = new org.apache.accumulo.core.manager.thrift.TFateId();
              struct.fateId.read(iprot);
              struct.setFateIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // OVERRIDES
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map57 = iprot.readMapBegin();
                struct.overrides = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map57.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key58;
                @org.apache.thrift.annotation.Nullable java.lang.String _val59;
                for (int _i60 = 0; _i60 < _map57.size; ++_i60)
                {
                  _key58 = iprot.readString();
                  _val59 = iprot.readString();
                  struct.overrides.put(_key58, _val59);
                }
                iprot.readMapEnd();
              }
              struct.setOverridesIsSet(true);
            } else { 
              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();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.externalCompactionId != null) {
        oprot.writeFieldBegin(EXTERNAL_COMPACTION_ID_FIELD_DESC);
        oprot.writeString(struct.externalCompactionId);
        oprot.writeFieldEnd();
      }
      if (struct.extent != null) {
        oprot.writeFieldBegin(EXTENT_FIELD_DESC);
        struct.extent.write(oprot);
        oprot.writeFieldEnd();
      }
      if (struct.files != null) {
        oprot.writeFieldBegin(FILES_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.files.size()));
          for (InputFile _iter61 : struct.files)
          {
            _iter61.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.iteratorSettings != null) {
        oprot.writeFieldBegin(ITERATOR_SETTINGS_FIELD_DESC);
        struct.iteratorSettings.write(oprot);
        oprot.writeFieldEnd();
      }
      if (struct.outputFile != null) {
        oprot.writeFieldBegin(OUTPUT_FILE_FIELD_DESC);
        oprot.writeString(struct.outputFile);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(PROPAGATE_DELETES_FIELD_DESC);
      oprot.writeBool(struct.propagateDeletes);
      oprot.writeFieldEnd();
      if (struct.kind != null) {
        oprot.writeFieldBegin(KIND_FIELD_DESC);
        oprot.writeI32(struct.kind.getValue());
        oprot.writeFieldEnd();
      }
      if (struct.fateId != null) {
        oprot.writeFieldBegin(FATE_ID_FIELD_DESC);
        struct.fateId.write(oprot);
        oprot.writeFieldEnd();
      }
      if (struct.overrides != null) {
        oprot.writeFieldBegin(OVERRIDES_FIELD_DESC);
        {
          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.overrides.size()));
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter62 : struct.overrides.entrySet())
          {
            oprot.writeString(_iter62.getKey());
            oprot.writeString(_iter62.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TExternalCompactionJobTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    @Override
    public TExternalCompactionJobTupleScheme getScheme() {
      return new TExternalCompactionJobTupleScheme();
    }
  }

  private static class TExternalCompactionJobTupleScheme extends org.apache.thrift.scheme.TupleScheme<TExternalCompactionJob> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TExternalCompactionJob struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetExternalCompactionId()) {
        optionals.set(0);
      }
      if (struct.isSetExtent()) {
        optionals.set(1);
      }
      if (struct.isSetFiles()) {
        optionals.set(2);
      }
      if (struct.isSetIteratorSettings()) {
        optionals.set(3);
      }
      if (struct.isSetOutputFile()) {
        optionals.set(4);
      }
      if (struct.isSetPropagateDeletes()) {
        optionals.set(5);
      }
      if (struct.isSetKind()) {
        optionals.set(6);
      }
      if (struct.isSetFateId()) {
        optionals.set(7);
      }
      if (struct.isSetOverrides()) {
        optionals.set(8);
      }
      oprot.writeBitSet(optionals, 9);
      if (struct.isSetExternalCompactionId()) {
        oprot.writeString(struct.externalCompactionId);
      }
      if (struct.isSetExtent()) {
        struct.extent.write(oprot);
      }
      if (struct.isSetFiles()) {
        {
          oprot.writeI32(struct.files.size());
          for (InputFile _iter63 : struct.files)
          {
            _iter63.write(oprot);
          }
        }
      }
      if (struct.isSetIteratorSettings()) {
        struct.iteratorSettings.write(oprot);
      }
      if (struct.isSetOutputFile()) {
        oprot.writeString(struct.outputFile);
      }
      if (struct.isSetPropagateDeletes()) {
        oprot.writeBool(struct.propagateDeletes);
      }
      if (struct.isSetKind()) {
        oprot.writeI32(struct.kind.getValue());
      }
      if (struct.isSetFateId()) {
        struct.fateId.write(oprot);
      }
      if (struct.isSetOverrides()) {
        {
          oprot.writeI32(struct.overrides.size());
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter64 : struct.overrides.entrySet())
          {
            oprot.writeString(_iter64.getKey());
            oprot.writeString(_iter64.getValue());
          }
        }
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TExternalCompactionJob struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(9);
      if (incoming.get(0)) {
        struct.externalCompactionId = iprot.readString();
        struct.setExternalCompactionIdIsSet(true);
      }
      if (incoming.get(1)) {
        struct.extent = new org.apache.accumulo.core.dataImpl.thrift.TKeyExtent();
        struct.extent.read(iprot);
        struct.setExtentIsSet(true);
      }
      if (incoming.get(2)) {
        {
          org.apache.thrift.protocol.TList _list65 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.files = new java.util.ArrayList<InputFile>(_list65.size);
          @org.apache.thrift.annotation.Nullable InputFile _elem66;
          for (int _i67 = 0; _i67 < _list65.size; ++_i67)
          {
            _elem66 = new InputFile();
            _elem66.read(iprot);
            struct.files.add(_elem66);
          }
        }
        struct.setFilesIsSet(true);
      }
      if (incoming.get(3)) {
        struct.iteratorSettings = new IteratorConfig();
        struct.iteratorSettings.read(iprot);
        struct.setIteratorSettingsIsSet(true);
      }
      if (incoming.get(4)) {
        struct.outputFile = iprot.readString();
        struct.setOutputFileIsSet(true);
      }
      if (incoming.get(5)) {
        struct.propagateDeletes = iprot.readBool();
        struct.setPropagateDeletesIsSet(true);
      }
      if (incoming.get(6)) {
        struct.kind = org.apache.accumulo.core.tabletserver.thrift.TCompactionKind.findByValue(iprot.readI32());
        struct.setKindIsSet(true);
      }
      if (incoming.get(7)) {
        struct.fateId = new org.apache.accumulo.core.manager.thrift.TFateId();
        struct.fateId.read(iprot);
        struct.setFateIdIsSet(true);
      }
      if (incoming.get(8)) {
        {
          org.apache.thrift.protocol.TMap _map68 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
          struct.overrides = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map68.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _key69;
          @org.apache.thrift.annotation.Nullable java.lang.String _val70;
          for (int _i71 = 0; _i71 < _map68.size; ++_i71)
          {
            _key69 = iprot.readString();
            _val70 = iprot.readString();
            struct.overrides.put(_key69, _val70);
          }
        }
        struct.setOverridesIsSet(true);
      }
    }
  }

  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
  }
  private static void unusedMethod() {}
}

