Skip to content

Commit 445b1ca

Browse files
committed
抽象出 DataConvertor, MsgConvertor 为其子接口
1 parent 751ce07 commit 445b1ca

File tree

2 files changed

+61
-47
lines changed

2 files changed

+61
-47
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.ejlchina.okhttps;
2+
3+
import java.io.InputStream;
4+
import java.lang.reflect.Type;
5+
import java.nio.charset.Charset;
6+
import java.util.List;
7+
8+
/**
9+
* 数据转换器
10+
* @since 2.5.2
11+
*/
12+
public interface DataConvertor {
13+
14+
/**
15+
* 解析 Mapper
16+
* @param in JSON 输入流
17+
* @param charset 编码格式
18+
* @return Mapper
19+
*/
20+
Mapper toMapper(InputStream in, Charset charset);
21+
22+
/**
23+
* 解析 Array
24+
* @param in JSON 输入流
25+
* @param charset 编码格式
26+
* @return Array
27+
*/
28+
Array toArray(InputStream in, Charset charset);
29+
30+
/**
31+
* 将 Java 对象序列化为字节数组
32+
* @param object Java 对象
33+
* @param charset 编码格式
34+
* @return 字节数组
35+
*/
36+
byte[] serialize(Object object, Charset charset);
37+
38+
/**
39+
* 解析 Java Bean
40+
* @param <T> 目标泛型
41+
* @param type 目标类型
42+
* @param in JSON 输入流
43+
* @param charset 编码格式
44+
* @return Java Bean
45+
*/
46+
<T> T toBean(Type type, InputStream in, Charset charset);
47+
48+
/**
49+
* 解析为 Java List
50+
* @param <T> 目标泛型
51+
* @param type 目标类型
52+
* @param in JSON 输入流
53+
* @param charset 编码格式
54+
* @return Java List
55+
*/
56+
<T> List<T> toList(Class<T> type, InputStream in, Charset charset);
57+
58+
}

okhttps/src/main/java/com/ejlchina/okhttps/MsgConvertor.java

Lines changed: 3 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,22 @@
99
/**
1010
* 消息转换器接口
1111
*/
12-
public interface MsgConvertor {
12+
public interface MsgConvertor extends DataConvertor {
1313

1414
/**
1515
* 消息的媒体类型
1616
* @return 媒体类型
1717
*/
1818
String mediaType();
1919

20-
/**
21-
* 解析 Mapper
22-
* @param in JSON 输入流
23-
* @param charset 编码格式
24-
* @return Mapper
25-
*/
26-
Mapper toMapper(InputStream in, Charset charset);
27-
28-
/**
29-
* 解析 Array
30-
* @param in JSON 输入流
31-
* @param charset 编码格式
32-
* @return Array
33-
*/
34-
Array toArray(InputStream in, Charset charset);
35-
36-
/**
37-
* 将 Java 对象序列化为字节数组
38-
* @param object Java 对象
39-
* @param charset 编码格式
40-
* @return 字节数组
41-
*/
42-
byte[] serialize(Object object, Charset charset);
43-
44-
/**
45-
* 解析 Java Bean
46-
* @param <T> 目标泛型
47-
* @param type 目标类型
48-
* @param in JSON 输入流
49-
* @param charset 编码格式
50-
* @return Java Bean
51-
*/
52-
<T> T toBean(Type type, InputStream in, Charset charset);
53-
54-
/**
55-
* 解析为 Java List
56-
* @param <T> 目标泛型
57-
* @param type 目标类型
58-
* @param in JSON 输入流
59-
* @param charset 编码格式
60-
* @return Java List
61-
*/
62-
<T> List<T> toList(Class<T> type, InputStream in, Charset charset);
63-
6420
/**
6521
* 表单转换器,可用于自动系列化表单参数
6622
*/
6723
class FormConvertor implements MsgConvertor {
6824

69-
private MsgConvertor convertor;
25+
private final DataConvertor convertor;
7026

71-
public FormConvertor(MsgConvertor convertor) {
27+
public FormConvertor(DataConvertor convertor) {
7228
this.convertor = convertor;
7329
}
7430

0 commit comments

Comments
 (0)