/* * Copyright 1999-2011 Alibaba Group. * * Licensed 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 * * http://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. */ package com.alibaba.dubbo.remoting.exchange; /** * Response * * @author qian.lei * @author william.liangf */ public class Response { public static final String HEARTBEAT_EVENT = null; public static final String READONLY_EVENT = "R"; /** * ok. */ public static final byte OK = 20; /** * clien side timeout. */ public static final byte CLIENT_TIMEOUT = 30; /** * server side timeout. */ public static final byte SERVER_TIMEOUT = 31; /** * request format error. */ public static final byte BAD_REQUEST = 40; /** * response format error. */ public static final byte BAD_RESPONSE = 50; /** * service not found. */ public static final byte SERVICE_NOT_FOUND = 60; /** * service error. */ public static final byte SERVICE_ERROR = 70; /** * internal server error. */ public static final byte SERVER_ERROR = 80; /** * internal server error. */ public static final byte CLIENT_ERROR = 90; private long mId = 0; private String mVersion; private byte mStatus = OK; private boolean mEvent = false; private String mErrorMsg; private Object mResult; public Response(){ } public Response(long id){ mId = id; } public Response(long id, String version){ mId = id; mVersion = version; } public long getId() { return mId; } public void setId(long id) { mId = id; } public String getVersion() { return mVersion; } public void setVersion(String version) { mVersion = version; } public byte getStatus() { return mStatus; } public void setStatus(byte status) { mStatus = status; } public boolean isEvent() { return mEvent; } public void setEvent(String event) { mEvent = true; mResult = event; } public boolean isHeartbeat() { return mEvent && HEARTBEAT_EVENT == mResult; } @Deprecated public void setHeartbeat(boolean isHeartbeat) { if (isHeartbeat) { setEvent(HEARTBEAT_EVENT); } } public Object getResult() { return mResult; } public void setResult(Object msg) { mResult = msg; } public String getErrorMessage() { return mErrorMsg; } public void setErrorMessage(String msg) { mErrorMsg = msg; } @Override public String toString() { return "Response [id=" + mId + ", version=" + mVersion + ", status=" + mStatus + ", event=" + mEvent + ", error=" + mErrorMsg + ", result=" + (mResult == this ? "this" : mResult) + "]"; } }