@@ -0,0 +1,43 @@ | |||||
package com.jd.blockchain.binaryproto; | |||||
/** | |||||
* 基础类型; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
public interface BaseType { | |||||
/** | |||||
* 空值; | |||||
*/ | |||||
public static final byte NIL = (byte) 0x00; | |||||
/** | |||||
* 布尔; | |||||
*/ | |||||
public static final byte BOOLEAN = (byte) 0x01; | |||||
/** | |||||
* 数值; | |||||
*/ | |||||
public static final byte NUMERIC = (byte) 0x10; | |||||
/** | |||||
* 文本 | |||||
*/ | |||||
public static final byte TEXT = (byte) 0x20; | |||||
/** | |||||
* 字节序列; | |||||
*/ | |||||
public static final byte BYTES = (byte) 0x40; | |||||
/** | |||||
* 扩展类型;<br> | |||||
* | |||||
* 最高位为1,用作保留字段; | |||||
*/ | |||||
public static final byte EXT = (byte) 0x80; | |||||
} |
@@ -1,24 +0,0 @@ | |||||
package com.jd.blockchain.binaryproto; | |||||
public interface DataType { | |||||
/** | |||||
* 空值; | |||||
*/ | |||||
public static final byte NIL = (byte) 0x00; | |||||
/** | |||||
* 布尔; | |||||
*/ | |||||
public static final byte BOOLEAN = (byte) 0x01; | |||||
/** | |||||
* 数值; | |||||
*/ | |||||
public static final byte NUMERIC = (byte) 0x10; | |||||
public static final byte TEXT = (byte) 0x20; | |||||
public static final byte BINARY = (byte) 0x40; | |||||
} |
@@ -11,68 +11,88 @@ public enum PrimitiveType { | |||||
/** | /** | ||||
* 空; | * 空; | ||||
*/ | */ | ||||
NIL(DataType.NIL), | |||||
NIL(BaseType.NIL), | |||||
/** | /** | ||||
* 布尔型; | * 布尔型; | ||||
*/ | */ | ||||
BOOLEAN(DataType.BOOLEAN), | |||||
BOOLEAN(BaseType.BOOLEAN), | |||||
/** | /** | ||||
* 数值型: | * 数值型: | ||||
*/ | */ | ||||
INT8((byte) (DataType.NUMERIC | 0x01)), | |||||
INT8((byte) (BaseType.NUMERIC | 0x01)), | |||||
INT16((byte) (DataType.NUMERIC | 0x02)), | |||||
INT16((byte) (BaseType.NUMERIC | 0x02)), | |||||
INT32((byte) (DataType.NUMERIC | 0x03)), | |||||
INT32((byte) (BaseType.NUMERIC | 0x03)), | |||||
INT64((byte) (DataType.NUMERIC | 0x04)), | |||||
INT64((byte) (BaseType.NUMERIC | 0x04)), | |||||
/** | /** | ||||
* 时间戳; | * 时间戳; | ||||
*/ | */ | ||||
TIMESTAMP((byte) (DataType.NUMERIC | 0x08)), | |||||
TIMESTAMP((byte) (BaseType.NUMERIC | 0x08)), | |||||
/** | /** | ||||
* 文本数据; | * 文本数据; | ||||
*/ | */ | ||||
TEXT(DataType.TEXT), | |||||
TEXT(BaseType.TEXT), | |||||
/** | /** | ||||
* 文本数据; | * 文本数据; | ||||
*/ | */ | ||||
JSON((byte) (DataType.TEXT | 0x01)), | |||||
JSON((byte) (BaseType.TEXT | 0x01)), | |||||
/** | /** | ||||
* 文本数据; | * 文本数据; | ||||
*/ | */ | ||||
XML((byte) (DataType.TEXT | 0x02)), | |||||
XML((byte) (BaseType.TEXT | 0x02)), | |||||
/** | /** | ||||
* 二进制数据; | * 二进制数据; | ||||
*/ | */ | ||||
BYTES(DataType.BINARY), | |||||
BYTES(BaseType.BYTES), | |||||
/** | /** | ||||
* 大整数; | * 大整数; | ||||
*/ | */ | ||||
BIG_INT((byte) (DataType.BINARY | 0x01)), | |||||
BIG_INT((byte) (BaseType.BYTES | 0x01)), | |||||
/** | /** | ||||
* 图片; | * 图片; | ||||
*/ | */ | ||||
IMG((byte) (DataType.BINARY | 0x02)), | |||||
IMG((byte) (BaseType.BYTES | 0x02)), | |||||
/** | /** | ||||
* 视频; | * 视频; | ||||
*/ | */ | ||||
VIDEO((byte) (DataType.BINARY | 0x03)), | |||||
VIDEO((byte) (BaseType.BYTES | 0x03)), | |||||
/** | /** | ||||
* 位置坐标; | * 位置坐标; | ||||
*/ | */ | ||||
LOCATION((byte) (DataType.BINARY | 0x04)); | |||||
LOCATION((byte) (BaseType.BYTES | 0x04)), | |||||
/** | |||||
* 公钥; | |||||
*/ | |||||
PUB_KEY((byte) (BaseType.BYTES | 0x05)), | |||||
/** | |||||
* 签名摘要; | |||||
*/ | |||||
SIGNATURE_DIGEST((byte) (BaseType.BYTES | 0x06)), | |||||
/** | |||||
* 哈希摘要; | |||||
*/ | |||||
HASH_DIGEST((byte) (BaseType.BYTES | 0x07)), | |||||
/** | |||||
* 加密数据; | |||||
*/ | |||||
ENCRYPTED_DATA((byte) (BaseType.BYTES | 0x08)); | |||||
public final byte CODE; | public final byte CODE; | ||||
@@ -2,7 +2,7 @@ package com.jd.blockchain.web.serializes; | |||||
import com.alibaba.fastjson.serializer.JSONSerializer; | import com.alibaba.fastjson.serializer.JSONSerializer; | ||||
import com.alibaba.fastjson.serializer.ObjectSerializer; | import com.alibaba.fastjson.serializer.ObjectSerializer; | ||||
import com.jd.blockchain.binaryproto.DataType; | |||||
import com.jd.blockchain.binaryproto.BaseType; | |||||
import com.jd.blockchain.crypto.HashDigest; | import com.jd.blockchain.crypto.HashDigest; | ||||
import com.jd.blockchain.crypto.PubKey; | import com.jd.blockchain.crypto.PubKey; | ||||
import com.jd.blockchain.crypto.SignatureDigest; | import com.jd.blockchain.crypto.SignatureDigest; | ||||
@@ -92,20 +92,20 @@ public class ByteArrayObjectJsonSerializer implements ObjectSerializer { | |||||
public static class BytesValueJson { | public static class BytesValueJson { | ||||
public BytesValueJson(DataType type, Object value) { | |||||
public BytesValueJson(BaseType type, Object value) { | |||||
this.type = type; | this.type = type; | ||||
this.value = value; | this.value = value; | ||||
} | } | ||||
DataType type; | |||||
BaseType type; | |||||
Object value; | Object value; | ||||
public DataType getType() { | |||||
public BaseType getType() { | |||||
return type; | return type; | ||||
} | } | ||||
public void setType(DataType type) { | |||||
public void setType(BaseType type) { | |||||
this.type = type; | this.type = type; | ||||
} | } | ||||