| // 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(); |
| |
| } |
| } |