@@ -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; | |||
@@ -2,7 +2,7 @@ package com.jd.blockchain.web.serializes; | |||
import com.alibaba.fastjson.serializer.JSONSerializer; | |||
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.PubKey; | |||
import com.jd.blockchain.crypto.SignatureDigest; | |||
@@ -92,20 +92,20 @@ public class ByteArrayObjectJsonSerializer implements ObjectSerializer { | |||
public static class BytesValueJson { | |||
public BytesValueJson(DataType type, Object value) { | |||
public BytesValueJson(BaseType type, Object value) { | |||
this.type = type; | |||
this.value = value; | |||
} | |||
DataType type; | |||
BaseType type; | |||
Object value; | |||
public DataType getType() { | |||
public BaseType getType() { | |||
return type; | |||
} | |||
public void setType(DataType type) { | |||
public void setType(BaseType type) { | |||
this.type = type; | |||
} | |||