BgpManager Initial commit
[vpnservice.git] / bgpmanager / bgpmanager-impl / src / main / java / org / opendaylight / bgpmanager / thrift / gen / Update.java
diff --git a/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/thrift/gen/Update.java b/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/thrift/gen/Update.java
new file mode 100644 (file)
index 0000000..45a3353
--- /dev/null
@@ -0,0 +1,968 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.opendaylight.bgpmanager.thrift.gen;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Update implements org.apache.thrift.TBase<Update, Update._Fields>, java.io.Serializable, Cloneable, Comparable<Update> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Update");
+
+  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField RESERVED_FIELD_DESC = new org.apache.thrift.protocol.TField("reserved", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PREFIXLEN_FIELD_DESC = new org.apache.thrift.protocol.TField("prefixlen", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField LABEL_FIELD_DESC = new org.apache.thrift.protocol.TField("label", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField RD_FIELD_DESC = new org.apache.thrift.protocol.TField("rd", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField PREFIX_FIELD_DESC = new org.apache.thrift.protocol.TField("prefix", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField NEXTHOP_FIELD_DESC = new org.apache.thrift.protocol.TField("nexthop", org.apache.thrift.protocol.TType.STRING, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UpdateStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UpdateTupleSchemeFactory());
+  }
+
+  public int type; // required
+  public int reserved; // required
+  public int prefixlen; // required
+  public int label; // required
+  public String rd; // required
+  public String prefix; // required
+  public String nexthop; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TYPE((short)1, "type"),
+    RESERVED((short)2, "reserved"),
+    PREFIXLEN((short)3, "prefixlen"),
+    LABEL((short)4, "label"),
+    RD((short)5, "rd"),
+    PREFIX((short)6, "prefix"),
+    NEXTHOP((short)7, "nexthop");
+
+    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: // TYPE
+          return TYPE;
+        case 2: // RESERVED
+          return RESERVED;
+        case 3: // PREFIXLEN
+          return PREFIXLEN;
+        case 4: // LABEL
+          return LABEL;
+        case 5: // RD
+          return RD;
+        case 6: // PREFIX
+          return PREFIX;
+        case 7: // NEXTHOP
+          return NEXTHOP;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches 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 __TYPE_ISSET_ID = 0;
+  private static final int __RESERVED_ISSET_ID = 1;
+  private static final int __PREFIXLEN_ISSET_ID = 2;
+  private static final int __LABEL_ISSET_ID = 3;
+  private byte __isset_bitfield = 0;
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.RESERVED, new org.apache.thrift.meta_data.FieldMetaData("reserved", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.PREFIXLEN, new org.apache.thrift.meta_data.FieldMetaData("prefixlen", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.LABEL, new org.apache.thrift.meta_data.FieldMetaData("label", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.RD, new org.apache.thrift.meta_data.FieldMetaData("rd", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PREFIX, new org.apache.thrift.meta_data.FieldMetaData("prefix", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NEXTHOP, new org.apache.thrift.meta_data.FieldMetaData("nexthop", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Update.class, metaDataMap);
+  }
+
+  public Update() {
+  }
+
+  public Update(
+    int type,
+    int reserved,
+    int prefixlen,
+    int label,
+    String rd,
+    String prefix,
+    String nexthop)
+  {
+    this();
+    this.type = type;
+    setTypeIsSet(true);
+    this.reserved = reserved;
+    setReservedIsSet(true);
+    this.prefixlen = prefixlen;
+    setPrefixlenIsSet(true);
+    this.label = label;
+    setLabelIsSet(true);
+    this.rd = rd;
+    this.prefix = prefix;
+    this.nexthop = nexthop;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Update(Update other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.type = other.type;
+    this.reserved = other.reserved;
+    this.prefixlen = other.prefixlen;
+    this.label = other.label;
+    if (other.isSetRd()) {
+      this.rd = other.rd;
+    }
+    if (other.isSetPrefix()) {
+      this.prefix = other.prefix;
+    }
+    if (other.isSetNexthop()) {
+      this.nexthop = other.nexthop;
+    }
+  }
+
+  public Update deepCopy() {
+    return new Update(this);
+  }
+
+  @Override
+  public void clear() {
+    setTypeIsSet(false);
+    this.type = 0;
+    setReservedIsSet(false);
+    this.reserved = 0;
+    setPrefixlenIsSet(false);
+    this.prefixlen = 0;
+    setLabelIsSet(false);
+    this.label = 0;
+    this.rd = null;
+    this.prefix = null;
+    this.nexthop = null;
+  }
+
+  public int getType() {
+    return this.type;
+  }
+
+  public Update setType(int type) {
+    this.type = type;
+    setTypeIsSet(true);
+    return this;
+  }
+
+  public void unsetType() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TYPE_ISSET_ID);
+  }
+
+  /** Returns true if field type is set (has been assigned a value) and false otherwise */
+  public boolean isSetType() {
+    return EncodingUtils.testBit(__isset_bitfield, __TYPE_ISSET_ID);
+  }
+
+  public void setTypeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TYPE_ISSET_ID, value);
+  }
+
+  public int getReserved() {
+    return this.reserved;
+  }
+
+  public Update setReserved(int reserved) {
+    this.reserved = reserved;
+    setReservedIsSet(true);
+    return this;
+  }
+
+  public void unsetReserved() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVED_ISSET_ID);
+  }
+
+  /** Returns true if field reserved is set (has been assigned a value) and false otherwise */
+  public boolean isSetReserved() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESERVED_ISSET_ID);
+  }
+
+  public void setReservedIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVED_ISSET_ID, value);
+  }
+
+  public int getPrefixlen() {
+    return this.prefixlen;
+  }
+
+  public Update setPrefixlen(int prefixlen) {
+    this.prefixlen = prefixlen;
+    setPrefixlenIsSet(true);
+    return this;
+  }
+
+  public void unsetPrefixlen() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PREFIXLEN_ISSET_ID);
+  }
+
+  /** Returns true if field prefixlen is set (has been assigned a value) and false otherwise */
+  public boolean isSetPrefixlen() {
+    return EncodingUtils.testBit(__isset_bitfield, __PREFIXLEN_ISSET_ID);
+  }
+
+  public void setPrefixlenIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PREFIXLEN_ISSET_ID, value);
+  }
+
+  public int getLabel() {
+    return this.label;
+  }
+
+  public Update setLabel(int label) {
+    this.label = label;
+    setLabelIsSet(true);
+    return this;
+  }
+
+  public void unsetLabel() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LABEL_ISSET_ID);
+  }
+
+  /** Returns true if field label is set (has been assigned a value) and false otherwise */
+  public boolean isSetLabel() {
+    return EncodingUtils.testBit(__isset_bitfield, __LABEL_ISSET_ID);
+  }
+
+  public void setLabelIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LABEL_ISSET_ID, value);
+  }
+
+  public String getRd() {
+    return this.rd;
+  }
+
+  public Update setRd(String rd) {
+    this.rd = rd;
+    return this;
+  }
+
+  public void unsetRd() {
+    this.rd = null;
+  }
+
+  /** Returns true if field rd is set (has been assigned a value) and false otherwise */
+  public boolean isSetRd() {
+    return this.rd != null;
+  }
+
+  public void setRdIsSet(boolean value) {
+    if (!value) {
+      this.rd = null;
+    }
+  }
+
+  public String getPrefix() {
+    return this.prefix;
+  }
+
+  public Update setPrefix(String prefix) {
+    this.prefix = prefix;
+    return this;
+  }
+
+  public void unsetPrefix() {
+    this.prefix = null;
+  }
+
+  /** Returns true if field prefix is set (has been assigned a value) and false otherwise */
+  public boolean isSetPrefix() {
+    return this.prefix != null;
+  }
+
+  public void setPrefixIsSet(boolean value) {
+    if (!value) {
+      this.prefix = null;
+    }
+  }
+
+  public String getNexthop() {
+    return this.nexthop;
+  }
+
+  public Update setNexthop(String nexthop) {
+    this.nexthop = nexthop;
+    return this;
+  }
+
+  public void unsetNexthop() {
+    this.nexthop = null;
+  }
+
+  /** Returns true if field nexthop is set (has been assigned a value) and false otherwise */
+  public boolean isSetNexthop() {
+    return this.nexthop != null;
+  }
+
+  public void setNexthopIsSet(boolean value) {
+    if (!value) {
+      this.nexthop = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((Integer)value);
+      }
+      break;
+
+    case RESERVED:
+      if (value == null) {
+        unsetReserved();
+      } else {
+        setReserved((Integer)value);
+      }
+      break;
+
+    case PREFIXLEN:
+      if (value == null) {
+        unsetPrefixlen();
+      } else {
+        setPrefixlen((Integer)value);
+      }
+      break;
+
+    case LABEL:
+      if (value == null) {
+        unsetLabel();
+      } else {
+        setLabel((Integer)value);
+      }
+      break;
+
+    case RD:
+      if (value == null) {
+        unsetRd();
+      } else {
+        setRd((String)value);
+      }
+      break;
+
+    case PREFIX:
+      if (value == null) {
+        unsetPrefix();
+      } else {
+        setPrefix((String)value);
+      }
+      break;
+
+    case NEXTHOP:
+      if (value == null) {
+        unsetNexthop();
+      } else {
+        setNexthop((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TYPE:
+      return Integer.valueOf(getType());
+
+    case RESERVED:
+      return Integer.valueOf(getReserved());
+
+    case PREFIXLEN:
+      return Integer.valueOf(getPrefixlen());
+
+    case LABEL:
+      return Integer.valueOf(getLabel());
+
+    case RD:
+      return getRd();
+
+    case PREFIX:
+      return getPrefix();
+
+    case NEXTHOP:
+      return getNexthop();
+
+    }
+    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 TYPE:
+      return isSetType();
+    case RESERVED:
+      return isSetReserved();
+    case PREFIXLEN:
+      return isSetPrefixlen();
+    case LABEL:
+      return isSetLabel();
+    case RD:
+      return isSetRd();
+    case PREFIX:
+      return isSetPrefix();
+    case NEXTHOP:
+      return isSetNexthop();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Update)
+      return this.equals((Update)that);
+    return false;
+  }
+
+  public boolean equals(Update that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_type = true;
+    boolean that_present_type = true;
+    if (this_present_type || that_present_type) {
+      if (!(this_present_type && that_present_type))
+        return false;
+      if (this.type != that.type)
+        return false;
+    }
+
+    boolean this_present_reserved = true;
+    boolean that_present_reserved = true;
+    if (this_present_reserved || that_present_reserved) {
+      if (!(this_present_reserved && that_present_reserved))
+        return false;
+      if (this.reserved != that.reserved)
+        return false;
+    }
+
+    boolean this_present_prefixlen = true;
+    boolean that_present_prefixlen = true;
+    if (this_present_prefixlen || that_present_prefixlen) {
+      if (!(this_present_prefixlen && that_present_prefixlen))
+        return false;
+      if (this.prefixlen != that.prefixlen)
+        return false;
+    }
+
+    boolean this_present_label = true;
+    boolean that_present_label = true;
+    if (this_present_label || that_present_label) {
+      if (!(this_present_label && that_present_label))
+        return false;
+      if (this.label != that.label)
+        return false;
+    }
+
+    boolean this_present_rd = true && this.isSetRd();
+    boolean that_present_rd = true && that.isSetRd();
+    if (this_present_rd || that_present_rd) {
+      if (!(this_present_rd && that_present_rd))
+        return false;
+      if (!this.rd.equals(that.rd))
+        return false;
+    }
+
+    boolean this_present_prefix = true && this.isSetPrefix();
+    boolean that_present_prefix = true && that.isSetPrefix();
+    if (this_present_prefix || that_present_prefix) {
+      if (!(this_present_prefix && that_present_prefix))
+        return false;
+      if (!this.prefix.equals(that.prefix))
+        return false;
+    }
+
+    boolean this_present_nexthop = true && this.isSetNexthop();
+    boolean that_present_nexthop = true && that.isSetNexthop();
+    if (this_present_nexthop || that_present_nexthop) {
+      if (!(this_present_nexthop && that_present_nexthop))
+        return false;
+      if (!this.nexthop.equals(that.nexthop))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(Update other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetType()).compareTo(other.isSetType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReserved()).compareTo(other.isSetReserved());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReserved()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reserved, other.reserved);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPrefixlen()).compareTo(other.isSetPrefixlen());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPrefixlen()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.prefixlen, other.prefixlen);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLabel()).compareTo(other.isSetLabel());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLabel()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.label, other.label);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRd()).compareTo(other.isSetRd());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRd()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rd, other.rd);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPrefix()).compareTo(other.isSetPrefix());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPrefix()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.prefix, other.prefix);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNexthop()).compareTo(other.isSetNexthop());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNexthop()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nexthop, other.nexthop);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("Update(");
+    boolean first = true;
+
+    sb.append("type:");
+    sb.append(this.type);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("reserved:");
+    sb.append(this.reserved);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("prefixlen:");
+    sb.append(this.prefixlen);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("label:");
+    sb.append(this.label);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("rd:");
+    if (this.rd == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.rd);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("prefix:");
+    if (this.prefix == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.prefix);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("nexthop:");
+    if (this.nexthop == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.nexthop);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, 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 UpdateStandardSchemeFactory implements SchemeFactory {
+    public UpdateStandardScheme getScheme() {
+      return new UpdateStandardScheme();
+    }
+  }
+
+  private static class UpdateStandardScheme extends StandardScheme<Update> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Update struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.type = iprot.readI32();
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESERVED
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.reserved = iprot.readI32();
+              struct.setReservedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PREFIXLEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.prefixlen = iprot.readI32();
+              struct.setPrefixlenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // LABEL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.label = iprot.readI32();
+              struct.setLabelIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // RD
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.rd = iprot.readString();
+              struct.setRdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // PREFIX
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.prefix = iprot.readString();
+              struct.setPrefixIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // NEXTHOP
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.nexthop = iprot.readString();
+              struct.setNexthopIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Update struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(TYPE_FIELD_DESC);
+      oprot.writeI32(struct.type);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(RESERVED_FIELD_DESC);
+      oprot.writeI32(struct.reserved);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(PREFIXLEN_FIELD_DESC);
+      oprot.writeI32(struct.prefixlen);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(LABEL_FIELD_DESC);
+      oprot.writeI32(struct.label);
+      oprot.writeFieldEnd();
+      if (struct.rd != null) {
+        oprot.writeFieldBegin(RD_FIELD_DESC);
+        oprot.writeString(struct.rd);
+        oprot.writeFieldEnd();
+      }
+      if (struct.prefix != null) {
+        oprot.writeFieldBegin(PREFIX_FIELD_DESC);
+        oprot.writeString(struct.prefix);
+        oprot.writeFieldEnd();
+      }
+      if (struct.nexthop != null) {
+        oprot.writeFieldBegin(NEXTHOP_FIELD_DESC);
+        oprot.writeString(struct.nexthop);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UpdateTupleSchemeFactory implements SchemeFactory {
+    public UpdateTupleScheme getScheme() {
+      return new UpdateTupleScheme();
+    }
+  }
+
+  private static class UpdateTupleScheme extends TupleScheme<Update> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Update struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReserved()) {
+        optionals.set(1);
+      }
+      if (struct.isSetPrefixlen()) {
+        optionals.set(2);
+      }
+      if (struct.isSetLabel()) {
+        optionals.set(3);
+      }
+      if (struct.isSetRd()) {
+        optionals.set(4);
+      }
+      if (struct.isSetPrefix()) {
+        optionals.set(5);
+      }
+      if (struct.isSetNexthop()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type);
+      }
+      if (struct.isSetReserved()) {
+        oprot.writeI32(struct.reserved);
+      }
+      if (struct.isSetPrefixlen()) {
+        oprot.writeI32(struct.prefixlen);
+      }
+      if (struct.isSetLabel()) {
+        oprot.writeI32(struct.label);
+      }
+      if (struct.isSetRd()) {
+        oprot.writeString(struct.rd);
+      }
+      if (struct.isSetPrefix()) {
+        oprot.writeString(struct.prefix);
+      }
+      if (struct.isSetNexthop()) {
+        oprot.writeString(struct.nexthop);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Update struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(7);
+      if (incoming.get(0)) {
+        struct.type = iprot.readI32();
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reserved = iprot.readI32();
+        struct.setReservedIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.prefixlen = iprot.readI32();
+        struct.setPrefixlenIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.label = iprot.readI32();
+        struct.setLabelIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.rd = iprot.readString();
+        struct.setRdIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.prefix = iprot.readString();
+        struct.setPrefixIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.nexthop = iprot.readString();
+        struct.setNexthopIsSet(true);
+      }
+    }
+  }
+
+}
+