@Override
	public Object read(ReaderModel model) {
		Class<?> type = model.getUserType();
		int ordinal = ByteUtils.byteToInt(model.getValue()[model.getIndex()]);
		Map<Integer, Enum<?>> enumMap = enumCacheMap.get(type);
		if (null == enumMap) {
			enumMap = crateEnumMap(type);
			enumCacheMap.put(type, enumMap);
		}
		Enum<?> returnValue = enumMap.get(ordinal);
		if (null == returnValue) {
			throw new XsonDeserializerException("未知的枚举 " + type.getName()
					+ " at index " + ordinal);
		}
		model.incrementIndex(1);
		model.appendObject(returnValue);
		return returnValue;
	}