/** * Autogenerated by Thrift * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated */ import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.Collections; import java.util.BitSet; import java.util.Arrays; import com.facebook.thrift.*; import com.facebook.thrift.annotations.*; import com.facebook.thrift.async.*; import com.facebook.thrift.meta_data.*; import com.facebook.thrift.server.*; import com.facebook.thrift.transport.*; import com.facebook.thrift.protocol.*; @SuppressWarnings({ "unused", "serial", "unchecked" }) public class MyUnion extends TUnion implements Comparable { private static final TStruct STRUCT_DESC = new TStruct("MyUnion"); private static final TField AN_INTEGER_FIELD_DESC = new TField("anInteger", TType.I32, (short)1); private static final TField A_STRING_FIELD_DESC = new TField("aString", TType.STRING, (short)2); public static final int ANINTEGER = 1; public static final int ASTRING = 2; public static final Map metaDataMap; static { Map tmpMetaDataMap = new HashMap(); tmpMetaDataMap.put(ANINTEGER, new FieldMetaData("anInteger", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); tmpMetaDataMap.put(ASTRING, new FieldMetaData("aString", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); metaDataMap = Collections.unmodifiableMap(tmpMetaDataMap); } public MyUnion() { super(); } public MyUnion(int setField, Object __value) { super(setField, __value); } public MyUnion(MyUnion other) { super(other); } public MyUnion deepCopy() { return new MyUnion(this); } public static MyUnion anInteger(int __value) { MyUnion x = new MyUnion(); x.setAnInteger(__value); return x; } public static MyUnion aString(String __value) { MyUnion x = new MyUnion(); x.setAString(__value); return x; } @Override protected void checkType(short setField, Object __value) throws ClassCastException { switch (setField) { case ANINTEGER: if (__value instanceof Integer) { break; } throw new ClassCastException("Was expecting value of type Integer for field 'anInteger', but got " + __value.getClass().getSimpleName()); case ASTRING: if (__value instanceof String) { break; } throw new ClassCastException("Was expecting value of type String for field 'aString', but got " + __value.getClass().getSimpleName()); default: throw new IllegalArgumentException("Unknown field id " + setField); } } @Override public void read(TProtocol iprot) throws TException { setField_ = 0; value_ = null; iprot.readStructBegin(metaDataMap); TField __field = iprot.readFieldBegin(); if (__field.type != TType.STOP) { value_ = readValue(iprot, __field); if (value_ != null) { switch (__field.id) { case ANINTEGER: if (__field.type == AN_INTEGER_FIELD_DESC.type) { setField_ = __field.id; } break; case ASTRING: if (__field.type == A_STRING_FIELD_DESC.type) { setField_ = __field.id; } break; } } iprot.readFieldEnd(); TField __stopField = iprot.readFieldBegin(); if (__stopField.type != TType.STOP) { throw new TProtocolException(TProtocolException.INVALID_DATA, "Union 'MyUnion' is missing a STOP byte"); } } iprot.readStructEnd(); } @Override protected Object readValue(TProtocol iprot, TField __field) throws TException { switch (__field.id) { case ANINTEGER: if (__field.type == AN_INTEGER_FIELD_DESC.type) { Integer anInteger; anInteger = iprot.readI32(); return anInteger; } break; case ASTRING: if (__field.type == A_STRING_FIELD_DESC.type) { String aString; aString = iprot.readString(); return aString; } break; } TProtocolUtil.skip(iprot, __field.type); return null; } @Override protected void writeValue(TProtocol oprot, short setField, Object __value) throws TException { switch (setField) { case ANINTEGER: Integer anInteger = (Integer)getFieldValue(); oprot.writeI32(anInteger); return; case ASTRING: String aString = (String)getFieldValue(); oprot.writeString(aString); return; default: throw new IllegalStateException("Cannot write union with unknown field " + setField); } } @Override protected TField getFieldDesc(int setField) { switch (setField) { case ANINTEGER: return AN_INTEGER_FIELD_DESC; case ASTRING: return A_STRING_FIELD_DESC; default: throw new IllegalArgumentException("Unknown field id " + setField); } } @Override protected TStruct getStructDesc() { return STRUCT_DESC; } @Override protected Map getMetaDataMap() { return metaDataMap; } private Object __getValue(int expectedFieldId) { if (getSetField() == expectedFieldId) { return getFieldValue(); } else { throw new RuntimeException("Cannot get field '" + getFieldDesc(expectedFieldId).name + "' because union is currently set to " + getFieldDesc(getSetField()).name); } } private void __setValue(int fieldId, Object __value) { if (__value == null) throw new NullPointerException(); setField_ = fieldId; value_ = __value; } public int getAnInteger() { return (Integer) __getValue(ANINTEGER); } public void setAnInteger(int __value) { setField_ = ANINTEGER; value_ = __value; } public String getAString() { return (String) __getValue(ASTRING); } public void setAString(String __value) { __setValue(ASTRING, __value); } public boolean equals(Object other) { if (other instanceof MyUnion) { return equals((MyUnion)other); } else { return false; } } public boolean equals(MyUnion other) { return equalsNobinaryImpl(other); } @Override public int compareTo(MyUnion other) { return compareToImpl(other); } @Override public int hashCode() { return Arrays.deepHashCode(new Object[] {getSetField(), getFieldValue()}); } }