| // Copyright (c) 2006- Facebook | 
 | // Distributed under the Thrift Software License | 
 | // | 
 | // See accompanying file LICENSE or visit the Thrift site at: | 
 | // http://developers.facebook.com/thrift/ | 
 |  | 
 | package com.facebook.thrift; | 
 |  | 
 | import com.facebook.thrift.protocol.TField; | 
 | import com.facebook.thrift.protocol.TProtocol; | 
 | import com.facebook.thrift.protocol.TProtocolUtil; | 
 | import com.facebook.thrift.protocol.TStruct; | 
 | import com.facebook.thrift.protocol.TType; | 
 |  | 
 | /** | 
 |  * Application level exception | 
 |  * | 
 |  * @author Mark Slee <mcslee@facebook.com> | 
 |  */ | 
 | public class TApplicationException extends TException { | 
 |  | 
 |   public static final int UNKNOWN = 0; | 
 |   public static final int UNKNOWN_METHOD = 1; | 
 |   public static final int INVALID_MESSAGE_TYPE = 2; | 
 |   public static final int WRONG_METHOD_NAME = 3; | 
 |   public static final int BAD_SEQUENCE_ID = 4; | 
 |   public static final int MISSING_RESULT = 5; | 
 |  | 
 |   protected int type_ = UNKNOWN; | 
 |  | 
 |   public TApplicationException() { | 
 |     super(); | 
 |   } | 
 |  | 
 |   public TApplicationException(int type) { | 
 |     super(); | 
 |     type_ = type; | 
 |   } | 
 |  | 
 |   public TApplicationException(int type, String message) { | 
 |     super(message); | 
 |     type_ = type; | 
 |   } | 
 |  | 
 |   public TApplicationException(String message) { | 
 |     super(message); | 
 |   } | 
 |  | 
 |   public int getType() { | 
 |     return type_; | 
 |   } | 
 |  | 
 |   public static TApplicationException read(TProtocol iprot) throws TException { | 
 |     TField field; | 
 |     TStruct struct = iprot.readStructBegin(); | 
 |  | 
 |     String message = null; | 
 |     int type = UNKNOWN; | 
 |  | 
 |     while (true) { | 
 |       field = iprot.readFieldBegin(); | 
 |       if (field.type == TType.STOP) { | 
 |         break; | 
 |       } | 
 |       switch (field.id) { | 
 |       case 1: | 
 |         if (field.type == TType.STRING) { | 
 |           message = iprot.readString(); | 
 |         } else { | 
 |           TProtocolUtil.skip(iprot, field.type); | 
 |         } | 
 |         break; | 
 |       case 2: | 
 |         if (field.type == TType.I32) { | 
 |           type = iprot.readI32(); | 
 |         } else { | 
 |           TProtocolUtil.skip(iprot, field.type); | 
 |         } | 
 |         break; | 
 |       default: | 
 |         TProtocolUtil.skip(iprot, field.type); | 
 |         break; | 
 |       } | 
 |       iprot.readFieldEnd(); | 
 |     } | 
 |     iprot.readStructEnd(); | 
 |  | 
 |     return new TApplicationException(type, message); | 
 |   } | 
 |  | 
 |   public void write(TProtocol oprot) throws TException { | 
 |     TStruct struct = new TStruct("TApplicationException"); | 
 |     TField field = new TField(); | 
 |     oprot.writeStructBegin(struct); | 
 |     if (getMessage() != null) { | 
 |       field.name = "message"; | 
 |       field.type = TType.STRING; | 
 |       field.id = 1; | 
 |       oprot.writeFieldBegin(field); | 
 |       oprot.writeString(getMessage()); | 
 |       oprot.writeFieldEnd(); | 
 |     } | 
 |     field.name = "type"; | 
 |     field.type = TType.I32; | 
 |     field.id = 2; | 
 |     oprot.writeFieldBegin(field); | 
 |     oprot.writeI32(type_); | 
 |     oprot.writeFieldEnd(); | 
 |     oprot.writeFieldStop(); | 
 |     oprot.writeStructEnd(); | 
 |  | 
 |   } | 
 | } |