All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taobao.tair.ResultCode Maven / Gradle / Ivy

/**
 * (C) 2007-2010 Taobao Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */
package com.taobao.tair;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * resutlcode
 */
public class ResultCode {
	private static final Log log = LogFactory.getLog(ResultCode.class);
	//must before result codes
	public static final Map codeMap = new HashMap();
	
	public static final ResultCode SUCCESS = createResultCode(0, "success");
	public static final ResultCode DATANOTEXSITS = createResultCode(1, "data not exist");
	public static final ResultCode CONNERROR = createResultCode(-1, "connection error or timeout");
	public static final ResultCode UNKNOW = createResultCode(-2, "unkonw error");
	public static final ResultCode SERVERERROR = createResultCode(-3999, "server error");
	public static final ResultCode VERERROR = createResultCode(-3997, "version error");
	public static final ResultCode TYPENOTMATCH = createResultCode(-3996, "type not match");
	public static final ResultCode PLUGINERROR = createResultCode(-3995, "plugin error");
	public static final ResultCode SERIALIZEERROR = createResultCode(-3994, "serialize error");
	public static final ResultCode ITEMEMPRY = createResultCode(-3993, "item empty");
	public static final ResultCode OUTOFRANGE = createResultCode(-3992, "item out of range");
	public static final ResultCode ITEMSIZEERROR = createResultCode(-3991, "item size error");
	public static final ResultCode SENDFAILED = createResultCode(-3990, "send packet failed");
	public static final ResultCode TIMEOUT = createResultCode(-3989, "timeout");
	public static final ResultCode DATAEXPIRED = createResultCode(-3988, "data expired");
	public static final ResultCode SERVERCANTWORK = createResultCode(-3987, "server can not work");
	public static final ResultCode WRITENOTONMASTER = createResultCode(-3986, "write not on master");
	public static final ResultCode DUPLICATEBUSY = createResultCode(-3985, "duplicate busy");
	public static final ResultCode MIGRATEBUSY = createResultCode(-3984, "migrate busy");
	public static final ResultCode INVALIDARG = createResultCode(-3982, "invalid argument");
	public static final ResultCode CANNT_OVERRIDE = createResultCode(-3981, "can not override");
	public static final ResultCode KEYTOLARGE = createResultCode(-5, "key length error");
	public static final ResultCode VALUETOLARGE = createResultCode(-6, "value length error");
	public static final ResultCode NSERROR = createResultCode(-7, "namsepace range error, should between 0 ~ 1023");
	public static final ResultCode PARTSUCC = createResultCode(-10, "partly success");
	public static final ResultCode COUNT_BOUNDS = createResultCode(-3980, "count reach bound");
	public static final ResultCode COUNT_ZERO = createResultCode(-3979, "count reach zero");
	public static final ResultCode COUNT_NOTFOUND = createResultCode(-3978, "count not exist");

	public static final ResultCode LOCK_EXIST = new ResultCode(-3975, "lock already exist");
	public static final ResultCode LOCK_NOT_EXIST = new ResultCode(-3974, "lock not exist");

	public static final ResultCode TARGET_NOT_NUMBER = createResultCode(-20001, "target not number");
	public static final ResultCode TARGET_NOT_INTEGER = createResultCode(-20002, "target not integer");
	public static final ResultCode TARGET_NOT_DOUBLE = createResultCode(-20003, "target not double");
	public static final ResultCode TARGET_ALREADY_EXIST = createResultCode(-20004, "target has exist");
	public static final ResultCode TARGET_RANGE_HAVE_NONE = createResultCode(-20005, "range_have none");
	public static final ResultCode TAIR_INCDECR_OVERFLOW = createResultCode(-20006, "data overflow");
	public static final ResultCode TAIR_DATA_LEN_LIMIT = createResultCode(-20007, "data len too long");
	
	public static final ResultCode TAIR_IS_NOT_SUPPORT = createResultCode(-20008, "not support");
	
	private int code = 0;
	private String message = null;

	private ResultCode(int code) {
		this.code = code;
	}

	private ResultCode(int code, String message) {
		this.code = code;
		this.message = message;
	}

	private static ResultCode createResultCode(int code, String message) {
		ResultCode resultCode = new ResultCode(code, message);
		if(code == 1) {
			//...
			codeMap.put(-3998, resultCode);
		}
		codeMap.put(code, resultCode);
		log.debug("create ResultCode {code = " + 
				String.valueOf(code) +
				", message = " + message + "}");
		return resultCode;
	}
	
	/**
	 * return the ResultCode object of the code.
	 * 

* If add new ResultCode, remember add case here. */ public static ResultCode valueOf(int code) { ResultCode resultCode = codeMap.get(code); if(resultCode == null) { return UNKNOW; } return resultCode; } /** * @return the inner code of this object */ public int getCode() { return code; } /** * @return the description of this object */ public String getMessage() { return message; } /** * whether the request is success. *

* if the target is not exist, this method return true. */ public boolean isSuccess() { return code >= 0; } @Override public String toString() { return "code=" + code + ", msg=" + message; } @Override public boolean equals(Object obj) { if(obj != null && (obj instanceof ResultCode)) { ResultCode rc = (ResultCode)obj; return rc.getCode() == code; } return false; } @Override public int hashCode() { return code; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy