mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add YamlUtil
This commit is contained in:
parent
ba00f03026
commit
7b6593fe68
@ -3,14 +3,17 @@
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
# 5.7.14 (2021-09-23)
|
||||
# 5.7.14 (2021-09-24)
|
||||
|
||||
### 🐣新特性
|
||||
* 【extra 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(issue#I4B70D@Gitee)
|
||||
* 【http 】 优化Browser版本正则判断
|
||||
* 【setting】 增加YamlUtil
|
||||
* 【extra 】 SenvenZExtractor改名为SevenZExtractor,增加getFirst、get方法
|
||||
|
||||
### 🐞Bug修复
|
||||
* 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee)
|
||||
* 【http 】 修复Extractor中filter无效问题
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -147,8 +147,8 @@ public class AnimatedGifEncoder {
|
||||
/**
|
||||
* Adds next GIF frame. The frame is not written immediately, but is
|
||||
* actually deferred until the next frame is received so that timing
|
||||
* data can be inserted. Invoking <code>finish()</code> flushes all
|
||||
* frames. If <code>setSize</code> was not invoked, the size of the
|
||||
* data can be inserted. Invoking {@code finish()} flushes all
|
||||
* frames. If {@code setSize} was not invoked, the size of the
|
||||
* first image is used for all subsequent frames.
|
||||
*
|
||||
* @param im BufferedImage containing frame to write.
|
||||
@ -225,7 +225,7 @@ public class AnimatedGifEncoder {
|
||||
|
||||
/**
|
||||
* Sets frame rate in frames per second. Equivalent to
|
||||
* <code>setDelay(1000/fps)</code>.
|
||||
* {@code setDelay(1000/fps)}.
|
||||
*
|
||||
* @param fps float frame rate (frames per second)
|
||||
*/
|
||||
|
@ -25,6 +25,8 @@ import java.io.PushbackInputStream;
|
||||
* </code>
|
||||
* <br><br>
|
||||
* 参考: http://akini.mbnet.fi/java/unicodereader/UnicodeInputStream.java.txt
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
public class BOMInputStream extends InputStream {
|
||||
|
||||
@ -36,10 +38,21 @@ public class BOMInputStream extends InputStream {
|
||||
private static final int BOM_SIZE = 4;
|
||||
|
||||
// ----------------------------------------------------------------- Constructor start
|
||||
|
||||
/**
|
||||
* 构造
|
||||
* @param in 流
|
||||
*/
|
||||
public BOMInputStream(InputStream in) {
|
||||
this(in, CharsetUtil.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param in 流
|
||||
* @param defaultCharset 默认编码
|
||||
*/
|
||||
public BOMInputStream(InputStream in, String defaultCharset) {
|
||||
this.in = new PushbackInputStream(in, BOM_SIZE);
|
||||
this.defaultCharset = defaultCharset;
|
||||
@ -61,7 +74,7 @@ public class BOMInputStream extends InputStream {
|
||||
* @return 编码
|
||||
*/
|
||||
public String getCharset() {
|
||||
if (!isInited) {
|
||||
if (false == isInited) {
|
||||
try {
|
||||
init();
|
||||
} catch (IOException ex) {
|
||||
@ -117,7 +130,6 @@ public class BOMInputStream extends InputStream {
|
||||
charset = defaultCharset;
|
||||
unread = n;
|
||||
}
|
||||
// System.out.println("read=" + n + ", unread=" + unread);
|
||||
|
||||
if (unread > 0) {
|
||||
in.unread(bom, (n - unread), unread);
|
||||
|
58
hutool-core/src/main/java/cn/hutool/core/io/BomReader.java
Normal file
58
hutool-core/src/main/java/cn/hutool/core/io/BomReader.java
Normal file
@ -0,0 +1,58 @@
|
||||
package cn.hutool.core.io;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
/**
|
||||
* 读取带BOM头的流内容的Reader,如果非bom的流或无法识别的编码,则默认UTF-8<br>
|
||||
* BOM定义:http://www.unicode.org/unicode/faq/utf_bom.html
|
||||
*
|
||||
* <ul>
|
||||
* <li>00 00 FE FF = UTF-32, big-endian</li>
|
||||
* <li>FF FE 00 00 = UTF-32, little-endian</li>
|
||||
* <li>EF BB BF = UTF-8</li>
|
||||
* <li>FE FF = UTF-16, big-endian</li>
|
||||
* <li>FF FE = UTF-16, little-endian</li>
|
||||
* </ul>
|
||||
* 使用: <br>
|
||||
* <code>
|
||||
* FileInputStream fis = new FileInputStream(file); <br>
|
||||
* BomReader uin = new BomReader(fis); <br>
|
||||
* </code>
|
||||
*
|
||||
* @author looly
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public class BomReader extends Reader {
|
||||
|
||||
private InputStreamReader reader;
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param in 流
|
||||
*/
|
||||
public BomReader(InputStream in) {
|
||||
Assert.notNull(in, "InputStream must be not null!");
|
||||
final BOMInputStream bin = (in instanceof BOMInputStream) ? (BOMInputStream) in : new BOMInputStream(in);
|
||||
try {
|
||||
this.reader = new InputStreamReader(bin, bin.getCharset());
|
||||
} catch (UnsupportedEncodingException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
return reader.read(cbuf, off, len);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
reader.close();
|
||||
}
|
||||
}
|
@ -224,6 +224,17 @@ public class IoUtil extends NioUtil {
|
||||
return getReader(in, in.getCharset());
|
||||
}
|
||||
|
||||
/**
|
||||
* 从{@link InputStream}中获取{@link BomReader}
|
||||
*
|
||||
* @param in {@link InputStream}
|
||||
* @return {@link BomReader}
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public static BomReader getBomReader(InputStream in) {
|
||||
return new BomReader(in);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得一个Reader
|
||||
*
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.bean.BeanPath;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
@ -76,7 +77,7 @@ public class Dict extends LinkedHashMap<String, Object> implements BasicTypeGett
|
||||
* <p>奇数参数必须为value,可以为任意类型。</p>
|
||||
*
|
||||
* <pre>
|
||||
Dict dict = Dict.of(
|
||||
* Dict dict = Dict.of(
|
||||
* "RED", "#FF0000",
|
||||
* "GREEN", "#00FF00",
|
||||
* "BLUE", "#0000FF"
|
||||
@ -91,10 +92,10 @@ public class Dict extends LinkedHashMap<String, Object> implements BasicTypeGett
|
||||
final Dict dict = create();
|
||||
|
||||
String key = null;
|
||||
for(int i = 0; i < keysAndValues.length; i++){
|
||||
if(i % 2 == 0){
|
||||
for (int i = 0; i < keysAndValues.length; i++) {
|
||||
if (i % 2 == 0) {
|
||||
key = Convert.toStr(keysAndValues[i]);
|
||||
} else{
|
||||
} else {
|
||||
dict.put(key, keysAndValues[i]);
|
||||
}
|
||||
}
|
||||
@ -504,6 +505,61 @@ public class Dict extends LinkedHashMap<String, Object> implements BasicTypeGett
|
||||
public Number getNumber(String attr) {
|
||||
return get(attr, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过表达式获取JSON中嵌套的对象<br>
|
||||
* <ol>
|
||||
* <li>.表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值</li>
|
||||
* <li>[]表达式,可以获取集合等对象中对应index的值</li>
|
||||
* </ol>
|
||||
* <p>
|
||||
* 表达式栗子:
|
||||
*
|
||||
* <pre>
|
||||
* persion
|
||||
* persion.name
|
||||
* persons[3]
|
||||
* person.friends[5].name
|
||||
* </pre>
|
||||
*
|
||||
* @param expression 表达式
|
||||
* @return 对象
|
||||
* @see BeanPath#get(Object)
|
||||
* @since 5.7.14
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T getByPath(String expression) {
|
||||
return (T) BeanPath.create(expression).get(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过表达式获取JSON中嵌套的对象<br>
|
||||
* <ol>
|
||||
* <li>.表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值</li>
|
||||
* <li>[]表达式,可以获取集合等对象中对应index的值</li>
|
||||
* </ol>
|
||||
* <p>
|
||||
* 表达式栗子:
|
||||
*
|
||||
* <pre>
|
||||
* persion
|
||||
* persion.name
|
||||
* persons[3]
|
||||
* person.friends[5].name
|
||||
* </pre>
|
||||
* <p>
|
||||
* 获取表达式对应值后转换为对应类型的值
|
||||
*
|
||||
* @param <T> 返回值类型
|
||||
* @param expression 表达式
|
||||
* @param resultType 返回值类型
|
||||
* @return 对象
|
||||
* @see BeanPath#get(Object)
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public <T> T getByPath(String expression, Class<T> resultType) {
|
||||
return Convert.convert(resultType, getByPath(expression));
|
||||
}
|
||||
// -------------------------------------------------------------------- Get end
|
||||
|
||||
@Override
|
||||
|
@ -14,45 +14,61 @@ import java.util.List;
|
||||
* 此模板用于简化对指定表的操作,简化的操作如下:<br>
|
||||
* 1、在初始化时指定了表名,CRUD操作时便不需要表名<br>
|
||||
* 2、在初始化时指定了主键,某些需要主键的操作便不需要指定主键类型
|
||||
* @author Looly
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
public class DaoTemplate {
|
||||
|
||||
/** 表名 */
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
protected String tableName;
|
||||
/** 本表的主键字段,请在子类中覆盖或构造方法中指定,默认为id */
|
||||
/**
|
||||
* 本表的主键字段,请在子类中覆盖或构造方法中指定,默认为id
|
||||
*/
|
||||
protected String primaryKeyField = "id";
|
||||
/** SQL运行器 */
|
||||
/**
|
||||
* SQL运行器
|
||||
*/
|
||||
protected Db db;
|
||||
|
||||
//--------------------------------------------------------------- Constructor start
|
||||
|
||||
/**
|
||||
* 构造,此构造需要自定义SqlRunner,主键默认为id
|
||||
*
|
||||
* @param tableName 数据库表名
|
||||
*/
|
||||
public DaoTemplate(String tableName) {
|
||||
this(tableName, (String)null);
|
||||
this(tableName, (String) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造,使用默认的池化连接池,读取默认配置文件的空分组,适用于只有一个数据库的情况
|
||||
* @param tableName 数据库表名
|
||||
*
|
||||
* @param tableName 数据库表名
|
||||
* @param primaryKeyField 主键字段名
|
||||
*/
|
||||
public DaoTemplate(String tableName, String primaryKeyField) {
|
||||
this(tableName, primaryKeyField, DSFactory.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param tableName 表
|
||||
* @param ds 数据源
|
||||
*/
|
||||
public DaoTemplate(String tableName, DataSource ds) {
|
||||
this(tableName, null, ds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造
|
||||
* @param tableName 表名
|
||||
*
|
||||
* @param tableName 表名
|
||||
* @param primaryKeyField 主键字段名
|
||||
* @param ds 数据源
|
||||
* @param ds 数据源
|
||||
*/
|
||||
public DaoTemplate(String tableName, String primaryKeyField, DataSource ds) {
|
||||
this(tableName, primaryKeyField, Db.use(ds));
|
||||
@ -60,13 +76,14 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
* @param tableName 表名
|
||||
*
|
||||
* @param tableName 表名
|
||||
* @param primaryKeyField 主键字段名
|
||||
* @param db Db对象
|
||||
* @param db Db对象
|
||||
*/
|
||||
public DaoTemplate(String tableName, String primaryKeyField, Db db) {
|
||||
this.tableName = tableName;
|
||||
if(StrUtil.isNotBlank(primaryKeyField)){
|
||||
if (StrUtil.isNotBlank(primaryKeyField)) {
|
||||
this.primaryKeyField = primaryKeyField;
|
||||
}
|
||||
this.db = db;
|
||||
@ -74,8 +91,10 @@ public class DaoTemplate {
|
||||
//--------------------------------------------------------------- Constructor end
|
||||
|
||||
//------------------------------------------------------------- Add start
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param entity 实体对象
|
||||
* @return 插入行数
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -86,6 +105,7 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param entity 实体对象
|
||||
* @return 主键列表
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -96,6 +116,7 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param entity 实体对象
|
||||
* @return 自增主键
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -106,11 +127,12 @@ public class DaoTemplate {
|
||||
//------------------------------------------------------------- Add end
|
||||
|
||||
//------------------------------------------------------------- Delete start
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param <T> 主键类型
|
||||
*
|
||||
* @param pk 主键
|
||||
* @param <T> 主键类型
|
||||
* @param pk 主键
|
||||
* @return 删除行数
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
@ -124,7 +146,7 @@ public class DaoTemplate {
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param <T> 主键类型
|
||||
* @param <T> 主键类型
|
||||
* @param field 字段名
|
||||
* @param value 字段值
|
||||
* @return 删除行数
|
||||
@ -141,7 +163,7 @@ public class DaoTemplate {
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param <T> 主键类型
|
||||
* @param <T> 主键类型
|
||||
* @param where 删除条件,当条件为空时,返回0(防止误删全表)
|
||||
* @return 删除行数
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -155,14 +177,16 @@ public class DaoTemplate {
|
||||
//------------------------------------------------------------- Delete end
|
||||
|
||||
//------------------------------------------------------------- Update start
|
||||
|
||||
/**
|
||||
* 按照条件更新
|
||||
*
|
||||
* @param record 更新的内容
|
||||
* @param where 条件
|
||||
* @param where 条件
|
||||
* @return 更新条目数
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public int update(Entity record, Entity where) throws SQLException{
|
||||
public int update(Entity record, Entity where) throws SQLException {
|
||||
if (MapUtil.isEmpty(record)) {
|
||||
return 0;
|
||||
}
|
||||
@ -171,6 +195,7 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param entity 实体对象,必须包含主键
|
||||
* @return 更新行数
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -194,6 +219,7 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 增加或者更新实体
|
||||
*
|
||||
* @param entity 实体,当包含主键时更新,否则新增
|
||||
* @return 新增或更新条数
|
||||
* @throws SQLException SQL执行异常
|
||||
@ -204,11 +230,12 @@ public class DaoTemplate {
|
||||
//------------------------------------------------------------- Update end
|
||||
|
||||
//------------------------------------------------------------- Get start
|
||||
|
||||
/**
|
||||
* 根据主键获取单个记录
|
||||
*
|
||||
* @param <T> 主键类型
|
||||
* @param pk 主键值
|
||||
* @param pk 主键值
|
||||
* @return 记录
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
@ -220,7 +247,7 @@ public class DaoTemplate {
|
||||
* 根据某个字段(最好是唯一字段)查询单个记录<br>
|
||||
* 当有多条返回时,只显示查询到的第一条
|
||||
*
|
||||
* @param <T> 字段值类型
|
||||
* @param <T> 字段值类型
|
||||
* @param field 字段名
|
||||
* @param value 字段值
|
||||
* @return 记录
|
||||
@ -243,10 +270,11 @@ public class DaoTemplate {
|
||||
//------------------------------------------------------------- Get end
|
||||
|
||||
//------------------------------------------------------------- Find start
|
||||
|
||||
/**
|
||||
* 根据某个字段值查询结果
|
||||
*
|
||||
* @param <T> 字段值类型
|
||||
* @param <T> 字段值类型
|
||||
* @param field 字段名
|
||||
* @param value 字段值
|
||||
* @return 记录
|
||||
@ -258,6 +286,7 @@ public class DaoTemplate {
|
||||
|
||||
/**
|
||||
* 查询当前表的所有记录
|
||||
*
|
||||
* @return 记录
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
@ -281,14 +310,14 @@ public class DaoTemplate {
|
||||
* SQL语句可以是非完整SQL语句,可以只提供查询的条件部分(例如WHERE部分)<br>
|
||||
* 此方法会自动补全SELECT * FROM [tableName] 部分,这样就无需关心表名,直接提供条件即可
|
||||
*
|
||||
* @param sql SQL语句
|
||||
* @param sql SQL语句
|
||||
* @param params SQL占位符中对应的参数
|
||||
* @return 记录
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public List<Entity> findBySql(String sql, Object... params) throws SQLException {
|
||||
String selectKeyword = StrUtil.subPre(sql.trim(), 6).toLowerCase();
|
||||
if(false == "select".equals(selectKeyword)){
|
||||
if (false == "select".equals(selectKeyword)) {
|
||||
sql = "SELECT * FROM " + this.tableName + " " + sql;
|
||||
}
|
||||
return db.query(sql, params);
|
||||
@ -297,13 +326,13 @@ public class DaoTemplate {
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param where 条件
|
||||
* @param page 分页对象
|
||||
* @param where 条件
|
||||
* @param page 分页对象
|
||||
* @param selectFields 查询的字段列表
|
||||
* @return 分页结果集
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public PageResult<Entity> page(Entity where, Page page, String... selectFields) throws SQLException{
|
||||
public PageResult<Entity> page(Entity where, Page page, String... selectFields) throws SQLException {
|
||||
return db.page(Arrays.asList(selectFields), fixEntity(where), page);
|
||||
}
|
||||
|
||||
@ -311,11 +340,11 @@ public class DaoTemplate {
|
||||
* 分页
|
||||
*
|
||||
* @param where 条件
|
||||
* @param page 分页对象
|
||||
* @param page 分页对象
|
||||
* @return 分页结果集
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public PageResult<Entity> page(Entity where, Page page) throws SQLException{
|
||||
public PageResult<Entity> page(Entity where, Page page) throws SQLException {
|
||||
return db.page(fixEntity(where), page);
|
||||
}
|
||||
|
||||
@ -326,7 +355,7 @@ public class DaoTemplate {
|
||||
* @return 数量
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public long count(Entity where) throws SQLException{
|
||||
public long count(Entity where) throws SQLException {
|
||||
return db.count(fixEntity(where));
|
||||
}
|
||||
|
||||
@ -337,20 +366,21 @@ public class DaoTemplate {
|
||||
* @return 是否存在
|
||||
* @throws SQLException SQL执行异常
|
||||
*/
|
||||
public boolean exist(Entity where) throws SQLException{
|
||||
public boolean exist(Entity where) throws SQLException {
|
||||
return this.count(where) > 0;
|
||||
}
|
||||
//------------------------------------------------------------- Find end
|
||||
|
||||
/**
|
||||
* 修正Entity对象,避免null和填充表名
|
||||
*
|
||||
* @param entity 实体类
|
||||
* @return 修正后的实体类
|
||||
*/
|
||||
private Entity fixEntity(Entity entity){
|
||||
if(null == entity){
|
||||
private Entity fixEntity(Entity entity) {
|
||||
if (null == entity) {
|
||||
entity = Entity.create(tableName);
|
||||
}else if(StrUtil.isBlank(entity.getTableName())){
|
||||
} else if (StrUtil.isBlank(entity.getTableName())) {
|
||||
entity.setTableName(tableName);
|
||||
}
|
||||
return entity;
|
||||
|
34
hutool-db/src/test/java/cn/hutool/db/PicTransferTest.java
Normal file
34
hutool-db/src/test/java/cn/hutool/db/PicTransferTest.java
Normal file
@ -0,0 +1,34 @@
|
||||
package cn.hutool.db;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class PicTransferTest {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void findTest() throws SQLException {
|
||||
Db.use().find(
|
||||
ListUtil.of("NAME", "TYPE", "GROUP", "PIC"),
|
||||
Entity.create("PIC_INFO").set("TYPE", 1),
|
||||
rs -> {
|
||||
while(rs.next()){
|
||||
save(rs);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private static void save(ResultSet rs) throws SQLException{
|
||||
String destDir = "d:/test/pic";
|
||||
String path = StrUtil.format("{}/{}-{}.jpg", destDir, rs.getString("NAME"), rs.getString("GROUP"));
|
||||
FileUtil.writeFromStream(rs.getBlob("PIC").getBinaryStream(), path);
|
||||
}
|
||||
}
|
@ -451,11 +451,5 @@
|
||||
<scope>compile</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.tukaani</groupId>
|
||||
<artifactId>xz</artifactId>
|
||||
<version>1.9</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -6,7 +6,7 @@ import cn.hutool.extra.compress.archiver.Archiver;
|
||||
import cn.hutool.extra.compress.archiver.SevenZArchiver;
|
||||
import cn.hutool.extra.compress.archiver.StreamArchiver;
|
||||
import cn.hutool.extra.compress.extractor.Extractor;
|
||||
import cn.hutool.extra.compress.extractor.SenvenZExtractor;
|
||||
import cn.hutool.extra.compress.extractor.SevenZExtractor;
|
||||
import cn.hutool.extra.compress.extractor.StreamExtractor;
|
||||
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
|
||||
import org.apache.commons.compress.archivers.StreamingNotSupportedException;
|
||||
@ -168,14 +168,14 @@ public class CompressUtil {
|
||||
*/
|
||||
public static Extractor createExtractor(Charset charset, String archiverName, File file) {
|
||||
if (ArchiveStreamFactory.SEVEN_Z.equalsIgnoreCase(archiverName)) {
|
||||
return new SenvenZExtractor(file);
|
||||
return new SevenZExtractor(file);
|
||||
}
|
||||
try {
|
||||
return new StreamExtractor(charset, archiverName, file);
|
||||
} catch (CompressException e) {
|
||||
final Throwable cause = e.getCause();
|
||||
if (cause instanceof StreamingNotSupportedException && cause.getMessage().contains("7z")) {
|
||||
return new SenvenZExtractor(file);
|
||||
return new SevenZExtractor(file);
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
@ -218,14 +218,15 @@ public class CompressUtil {
|
||||
*/
|
||||
public static Extractor createExtractor(Charset charset, String archiverName, InputStream in) {
|
||||
if (ArchiveStreamFactory.SEVEN_Z.equalsIgnoreCase(archiverName)) {
|
||||
return new SenvenZExtractor(in);
|
||||
return new SevenZExtractor(in);
|
||||
}
|
||||
|
||||
try {
|
||||
return new StreamExtractor(charset, archiverName, in);
|
||||
} catch (CompressException e) {
|
||||
final Throwable cause = e.getCause();
|
||||
if (cause instanceof StreamingNotSupportedException && cause.getMessage().contains("7z")) {
|
||||
return new SenvenZExtractor(in);
|
||||
return new SevenZExtractor(in);
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ public interface Extractor extends Closeable {
|
||||
* 释放(解压)到指定目录,结束后自动关闭流,此方法只能调用一次
|
||||
*
|
||||
* @param targetDir 目标目录
|
||||
* @param filter 解压文件过滤器,用于指定需要释放的文件,null表示不过滤。当{@link Filter#accept(Object)}为true时释放。
|
||||
* @param filter 解压文件过滤器,用于指定需要释放的文件,{@code null}表示不过滤。当{@link Filter#accept(Object)}为true时释放。
|
||||
*/
|
||||
void extract(File targetDir, Filter<ArchiveEntry> filter);
|
||||
|
||||
|
@ -20,8 +20,9 @@ public class Seven7EntryInputStream extends InputStream {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param sevenZFile {@link SevenZFile}
|
||||
* @param entry {@link SevenZArchiveEntry}
|
||||
* @param entry {@link SevenZArchiveEntry}
|
||||
*/
|
||||
public Seven7EntryInputStream(SevenZFile sevenZFile, SevenZArchiveEntry entry) {
|
||||
this.sevenZFile = sevenZFile;
|
||||
@ -30,13 +31,23 @@ public class Seven7EntryInputStream extends InputStream {
|
||||
|
||||
@Override
|
||||
public int available() throws IOException {
|
||||
try{
|
||||
try {
|
||||
return Math.toIntExact(this.size);
|
||||
} catch (ArithmeticException e){
|
||||
} catch (ArithmeticException e) {
|
||||
throw new IOException("Entry size is too large!(max than Integer.MAX)", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取读取的长度(字节数)
|
||||
*
|
||||
* @return 读取的字节数
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public long getReadSize() {
|
||||
return this.readSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read() throws IOException {
|
||||
this.readSize++;
|
||||
|
@ -5,6 +5,7 @@ import cn.hutool.core.io.IORuntimeException;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Filter;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.sevenz.SevenZFile;
|
||||
@ -14,6 +15,7 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.channels.SeekableByteChannel;
|
||||
import java.util.RandomAccess;
|
||||
|
||||
/**
|
||||
* 7z格式数据解压器,即将归档打包的数据释放
|
||||
@ -21,7 +23,7 @@ import java.nio.channels.SeekableByteChannel;
|
||||
* @author looly
|
||||
* @since 5.5.0
|
||||
*/
|
||||
public class SenvenZExtractor implements Extractor {
|
||||
public class SevenZExtractor implements Extractor, RandomAccess {
|
||||
|
||||
private final SevenZFile sevenZFile;
|
||||
|
||||
@ -30,7 +32,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
*
|
||||
* @param file 包文件
|
||||
*/
|
||||
public SenvenZExtractor(File file) {
|
||||
public SevenZExtractor(File file) {
|
||||
this(file, null);
|
||||
}
|
||||
|
||||
@ -40,7 +42,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
* @param file 包文件
|
||||
* @param password 密码,null表示无密码
|
||||
*/
|
||||
public SenvenZExtractor(File file, char[] password) {
|
||||
public SevenZExtractor(File file, char[] password) {
|
||||
try {
|
||||
this.sevenZFile = new SevenZFile(file, password);
|
||||
} catch (IOException e) {
|
||||
@ -53,7 +55,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
*
|
||||
* @param in 包流
|
||||
*/
|
||||
public SenvenZExtractor(InputStream in) {
|
||||
public SevenZExtractor(InputStream in) {
|
||||
this(in, null);
|
||||
}
|
||||
|
||||
@ -63,7 +65,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
* @param in 包流
|
||||
* @param password 密码,null表示无密码
|
||||
*/
|
||||
public SenvenZExtractor(InputStream in, char[] password) {
|
||||
public SevenZExtractor(InputStream in, char[] password) {
|
||||
this(new SeekableInMemoryByteChannel(IoUtil.readBytes(in)), password);
|
||||
}
|
||||
|
||||
@ -72,7 +74,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
*
|
||||
* @param channel {@link SeekableByteChannel}
|
||||
*/
|
||||
public SenvenZExtractor(SeekableByteChannel channel) {
|
||||
public SevenZExtractor(SeekableByteChannel channel) {
|
||||
this(channel, null);
|
||||
}
|
||||
|
||||
@ -82,7 +84,7 @@ public class SenvenZExtractor implements Extractor {
|
||||
* @param channel {@link SeekableByteChannel}
|
||||
* @param password 密码,null表示无密码
|
||||
*/
|
||||
public SenvenZExtractor(SeekableByteChannel channel, char[] password) {
|
||||
public SevenZExtractor(SeekableByteChannel channel, char[] password) {
|
||||
try {
|
||||
this.sevenZFile = new SevenZFile(channel, password);
|
||||
} catch (IOException e) {
|
||||
@ -107,6 +109,44 @@ public class SenvenZExtractor implements Extractor {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取满足指定过滤要求的压缩包内的第一个文件流
|
||||
*
|
||||
* @param filter 用于指定需要释放的文件,null表示不过滤。当{@link Filter#accept(Object)}为true时返回对应流。
|
||||
* @return 满足过滤要求的第一个文件的流,无满足条件的文件返回{@code null}
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public InputStream getFirst(Filter<ArchiveEntry> filter) {
|
||||
final SevenZFile sevenZFile = this.sevenZFile;
|
||||
for(SevenZArchiveEntry entry : sevenZFile.getEntries()){
|
||||
if(null != filter && false == filter.accept(entry)){
|
||||
continue;
|
||||
}
|
||||
if(entry.isDirectory()){
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
return sevenZFile.getInputStream(entry);
|
||||
} catch (IOException e) {
|
||||
throw new IORuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定名称的文件流
|
||||
*
|
||||
* @param entryName entry名称
|
||||
* @return 文件流,无文件返回{@code null}
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public InputStream get(String entryName){
|
||||
return getFirst((entry)-> StrUtil.equals(entryName, entry.getName()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 释放(解压)到指定目录
|
||||
*
|
||||
@ -120,6 +160,9 @@ public class SenvenZExtractor implements Extractor {
|
||||
SevenZArchiveEntry entry;
|
||||
File outItemFile;
|
||||
while (null != (entry = this.sevenZFile.getNextEntry())) {
|
||||
if(null != filter && false == filter.accept(entry)){
|
||||
continue;
|
||||
}
|
||||
outItemFile = FileUtil.file(targetDir, entry.getName());
|
||||
if (entry.isDirectory()) {
|
||||
// 创建对应目录
|
@ -109,6 +109,9 @@ public class StreamExtractor implements Extractor{
|
||||
ArchiveEntry entry;
|
||||
File outItemFile;
|
||||
while (null != (entry = in.getNextEntry())) {
|
||||
if(null != filter && false == filter.accept(entry)){
|
||||
continue;
|
||||
}
|
||||
if (false == in.canReadEntryData(entry)) {
|
||||
// 无法读取的文件直接跳过
|
||||
continue;
|
||||
|
@ -50,7 +50,7 @@ public class ArchiverTest {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void senvenZTest(){
|
||||
public void sevenZTest(){
|
||||
final File file = FileUtil.file("d:/test/compress/test.7z");
|
||||
CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, ArchiveStreamFactory.SEVEN_Z, file)
|
||||
.add(FileUtil.file("d:/Java/apache-maven-3.6.3"), (f)->{
|
||||
|
@ -21,7 +21,7 @@ public class ExtractorTest {
|
||||
@Test
|
||||
@Ignore
|
||||
public void sevenZTest(){
|
||||
Extractor extractor = CompressUtil.createExtractor(
|
||||
Extractor extractor = CompressUtil.createExtractor(
|
||||
CharsetUtil.defaultCharset(),
|
||||
FileUtil.file("d:/test/compress/test.7z"));
|
||||
|
||||
|
@ -1,14 +1,6 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
@lombok.Data
|
||||
public class Data {
|
||||
|
||||
private Price Price;
|
||||
|
||||
public void setPrice(Price Price) {
|
||||
this.Price = Price;
|
||||
}
|
||||
|
||||
public Price getPrice() {
|
||||
return Price;
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 质量过关
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class ExamInfoDict implements Serializable {
|
||||
private static final long serialVersionUID = 3640936499125004525L;
|
||||
|
||||
@ -17,47 +19,4 @@ public class ExamInfoDict implements Serializable {
|
||||
private Integer examType;
|
||||
// 试题是否作答
|
||||
private Integer answerIs;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getExamType() {
|
||||
return examType;
|
||||
}
|
||||
public void setExamType(Integer examType) {
|
||||
this.examType = examType;
|
||||
}
|
||||
|
||||
public Integer getAnswerIs() {
|
||||
return answerIs;
|
||||
}
|
||||
public void setAnswerIs(Integer answerIs) {
|
||||
this.answerIs = answerIs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
ExamInfoDict that = (ExamInfoDict) o;
|
||||
return Objects.equals(id, that.id) && Objects.equals(examType, that.examType) && Objects.equals(answerIs, that.answerIs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, examType, answerIs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ExamInfoDict{" + "id=" + id + ", examType=" + examType + ", answerIs=" + answerIs + '}';
|
||||
}
|
||||
}
|
||||
|
@ -1,22 +1,10 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class JSONBean {
|
||||
|
||||
private int code;
|
||||
private JSONObject data;
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
public JSONObject getData() {
|
||||
return data;
|
||||
}
|
||||
public void setData(JSONObject data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class JsonNode implements Serializable {
|
||||
private static final long serialVersionUID = -2280206942803550272L;
|
||||
|
||||
@ -17,33 +20,4 @@ public class JsonNode implements Serializable {
|
||||
this.parentId = parentId;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getParentId() {
|
||||
return parentId;
|
||||
}
|
||||
|
||||
public void setParentId(Integer parentId) {
|
||||
this.parentId = parentId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JsonNode{" + "id=" + id + ", parentId=" + parentId + ", name='" + name + '\'' + '}';
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JsonRootBean {
|
||||
|
||||
private int statusCode;
|
||||
private String message;
|
||||
private int skip;
|
||||
private int limit;
|
||||
private int total;
|
||||
private List<Data> data;
|
||||
|
||||
public void setStatusCode(int statusCode) {
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setSkip(int skip) {
|
||||
this.skip = skip;
|
||||
}
|
||||
|
||||
public int getSkip() {
|
||||
return skip;
|
||||
}
|
||||
|
||||
public void setLimit(int limit) {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
public int getLimit() {
|
||||
return limit;
|
||||
}
|
||||
|
||||
public void setTotal(int total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setData(List<Data> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public List<Data> getData() {
|
||||
return data;
|
||||
}
|
||||
}
|
@ -1,121 +1,125 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wangyan E-mail:wangyan@pospt.cn
|
||||
* @version 创建时间:2017年9月13日 下午5:16:32
|
||||
* 类说明
|
||||
*/
|
||||
public class PerfectEvaluationProductResVo extends ProductResBase{
|
||||
* @author wangyan E-mail:wangyan@pospt.cn
|
||||
* @version 创建时间:2017年9月13日 下午5:16:32
|
||||
* 类说明
|
||||
*/
|
||||
@Data
|
||||
public class PerfectEvaluationProductResVo extends ProductResBase {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final Map<String,String> KEY_TO_KEY = new HashMap<String,String>(){
|
||||
public static final Map<String, String> KEY_TO_KEY = new HashMap<String, String>() {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
{
|
||||
put("HA001","CDCA005");
|
||||
put("HA002","CDCA002");
|
||||
put("HA003","CDCA004");
|
||||
put("HA004","CSSP002");
|
||||
put("HB001","CSWC001");
|
||||
put("HB002","CSRL001");
|
||||
put("HB003","CSRL003");
|
||||
put("HC005","CDTB016");
|
||||
put("HC006","CDTB020");
|
||||
put("HC007","CDTB021");
|
||||
put("HC008","CDTB022");
|
||||
put("HC009","CDTB023");
|
||||
put("HC010","CDTB024");
|
||||
put("HC011","CDTB001");
|
||||
put("HC012","CDTB005");
|
||||
put("HC013","CDTB006");
|
||||
put("HC014","CDTB007");
|
||||
put("HC015","CDTB008");
|
||||
put("HC016","CDTB009");
|
||||
put("HC001","CDTB018");
|
||||
put("HC002","CDTB003");
|
||||
put("HC003","CDTB063");
|
||||
put("HC004","CDTB060");
|
||||
put("HD001","CDMC005");
|
||||
put("HD007","CDMC082");
|
||||
put("HD010","CDMC164");
|
||||
put("HD016","CSSP003");
|
||||
put("HD017","CSSS003");
|
||||
put("HE001","CDTT028");
|
||||
put("HE002","CDTT029");
|
||||
put("HE003","CDTT030");
|
||||
put("HE004","CDTT031");
|
||||
put("HE005","CDTT032");
|
||||
put("HE006","CDTT033");
|
||||
put("HE007","CDTT015");
|
||||
put("HE008","CDTT016");
|
||||
put("HE009","CDTT017");
|
||||
put("HE010","CDTT018");
|
||||
put("HE011","CDTT019");
|
||||
put("HE012","CDTT020");
|
||||
put("HE013","CDTT055");
|
||||
put("HE014","CDTT056");
|
||||
put("HE015","CDTT057");
|
||||
put("HE016","CDTT058");
|
||||
put("HE017","CDTT059");
|
||||
put("HE018","CDTT060");
|
||||
put("HE019","CDTT043");
|
||||
put("HE020","CDTT044");
|
||||
put("HE021","CDTT045");
|
||||
put("HE022","CDTT046");
|
||||
put("HE023","CDTT047");
|
||||
put("HE024","CDTT048");
|
||||
put("HE025","CDTT080");
|
||||
put("HE026","CDTT081");
|
||||
put("HE027","CDTT082");
|
||||
put("HE028","CDTT083");
|
||||
put("HE029","CDTT084");
|
||||
put("HE030","CDTT085");
|
||||
put("HE031","CDTT067");
|
||||
put("HE032","CDTT068");
|
||||
put("HE033","CDTT069");
|
||||
put("HE034","CDTT070");
|
||||
put("HE035","CDTT071");
|
||||
put("HE036","CDTT072");
|
||||
put("HF001","CDTB272");
|
||||
put("HF002","CDTB273");
|
||||
put("HF003","CDTB277");
|
||||
put("HF004","CDTB278");
|
||||
put("HF005","CDTB282");
|
||||
put("HF006","CDTB283");
|
||||
put("HF007","CDTC058");
|
||||
put("HF008","CDTC059");
|
||||
put("HF009","CDTC060");
|
||||
put("HF010","CDTC014");
|
||||
put("HG001","CDMC294");
|
||||
put("HG002","CDMC293");
|
||||
put("HG003","CDMC301");
|
||||
put("HG004","CDMC300");
|
||||
put("HG005","CDMC308");
|
||||
put("HG006","CDMC307");
|
||||
put("HG007","CDMC315");
|
||||
put("HG008","CDMC314");
|
||||
put("HG009","CDMC322");
|
||||
put("HG010","CDMC321");
|
||||
put("HG011","CDMC287");
|
||||
put("HH001","CDTT001");
|
||||
put("HH002","CDTT002");
|
||||
put("HH003","CDTT003");
|
||||
put("HH004","CDTT004");
|
||||
put("HH005","CDTT005");
|
||||
put("HH006","CDTT006");
|
||||
put("HH007","CDTT007");
|
||||
put("HH008","CDTT008");
|
||||
put("HH009","CDTT009");
|
||||
put("HH010","CDTT010");
|
||||
put("HH011","CDTT011");
|
||||
put("HH012","CDTT012");
|
||||
put("HH013","CDTT013");
|
||||
put("HH014","CDTT014");
|
||||
put("HA001", "CDCA005");
|
||||
put("HA002", "CDCA002");
|
||||
put("HA003", "CDCA004");
|
||||
put("HA004", "CSSP002");
|
||||
put("HB001", "CSWC001");
|
||||
put("HB002", "CSRL001");
|
||||
put("HB003", "CSRL003");
|
||||
put("HC005", "CDTB016");
|
||||
put("HC006", "CDTB020");
|
||||
put("HC007", "CDTB021");
|
||||
put("HC008", "CDTB022");
|
||||
put("HC009", "CDTB023");
|
||||
put("HC010", "CDTB024");
|
||||
put("HC011", "CDTB001");
|
||||
put("HC012", "CDTB005");
|
||||
put("HC013", "CDTB006");
|
||||
put("HC014", "CDTB007");
|
||||
put("HC015", "CDTB008");
|
||||
put("HC016", "CDTB009");
|
||||
put("HC001", "CDTB018");
|
||||
put("HC002", "CDTB003");
|
||||
put("HC003", "CDTB063");
|
||||
put("HC004", "CDTB060");
|
||||
put("HD001", "CDMC005");
|
||||
put("HD007", "CDMC082");
|
||||
put("HD010", "CDMC164");
|
||||
put("HD016", "CSSP003");
|
||||
put("HD017", "CSSS003");
|
||||
put("HE001", "CDTT028");
|
||||
put("HE002", "CDTT029");
|
||||
put("HE003", "CDTT030");
|
||||
put("HE004", "CDTT031");
|
||||
put("HE005", "CDTT032");
|
||||
put("HE006", "CDTT033");
|
||||
put("HE007", "CDTT015");
|
||||
put("HE008", "CDTT016");
|
||||
put("HE009", "CDTT017");
|
||||
put("HE010", "CDTT018");
|
||||
put("HE011", "CDTT019");
|
||||
put("HE012", "CDTT020");
|
||||
put("HE013", "CDTT055");
|
||||
put("HE014", "CDTT056");
|
||||
put("HE015", "CDTT057");
|
||||
put("HE016", "CDTT058");
|
||||
put("HE017", "CDTT059");
|
||||
put("HE018", "CDTT060");
|
||||
put("HE019", "CDTT043");
|
||||
put("HE020", "CDTT044");
|
||||
put("HE021", "CDTT045");
|
||||
put("HE022", "CDTT046");
|
||||
put("HE023", "CDTT047");
|
||||
put("HE024", "CDTT048");
|
||||
put("HE025", "CDTT080");
|
||||
put("HE026", "CDTT081");
|
||||
put("HE027", "CDTT082");
|
||||
put("HE028", "CDTT083");
|
||||
put("HE029", "CDTT084");
|
||||
put("HE030", "CDTT085");
|
||||
put("HE031", "CDTT067");
|
||||
put("HE032", "CDTT068");
|
||||
put("HE033", "CDTT069");
|
||||
put("HE034", "CDTT070");
|
||||
put("HE035", "CDTT071");
|
||||
put("HE036", "CDTT072");
|
||||
put("HF001", "CDTB272");
|
||||
put("HF002", "CDTB273");
|
||||
put("HF003", "CDTB277");
|
||||
put("HF004", "CDTB278");
|
||||
put("HF005", "CDTB282");
|
||||
put("HF006", "CDTB283");
|
||||
put("HF007", "CDTC058");
|
||||
put("HF008", "CDTC059");
|
||||
put("HF009", "CDTC060");
|
||||
put("HF010", "CDTC014");
|
||||
put("HG001", "CDMC294");
|
||||
put("HG002", "CDMC293");
|
||||
put("HG003", "CDMC301");
|
||||
put("HG004", "CDMC300");
|
||||
put("HG005", "CDMC308");
|
||||
put("HG006", "CDMC307");
|
||||
put("HG007", "CDMC315");
|
||||
put("HG008", "CDMC314");
|
||||
put("HG009", "CDMC322");
|
||||
put("HG010", "CDMC321");
|
||||
put("HG011", "CDMC287");
|
||||
put("HH001", "CDTT001");
|
||||
put("HH002", "CDTT002");
|
||||
put("HH003", "CDTT003");
|
||||
put("HH004", "CDTT004");
|
||||
put("HH005", "CDTT005");
|
||||
put("HH006", "CDTT006");
|
||||
put("HH007", "CDTT007");
|
||||
put("HH008", "CDTT008");
|
||||
put("HH009", "CDTT009");
|
||||
put("HH010", "CDTT010");
|
||||
put("HH011", "CDTT011");
|
||||
put("HH012", "CDTT012");
|
||||
put("HH013", "CDTT013");
|
||||
put("HH014", "CDTT014");
|
||||
}
|
||||
};
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String XT_NO;
|
||||
private String CARD_HOLDER;
|
||||
private String CARD_NO;
|
||||
@ -236,730 +240,4 @@ public class PerfectEvaluationProductResVo extends ProductResBase{
|
||||
private String XT_MONTH04;
|
||||
private String XT_MONTH05;
|
||||
private String XT_MONTH06;
|
||||
|
||||
|
||||
public String getHA001() {
|
||||
return HA001;
|
||||
}
|
||||
public String getHA002() {
|
||||
return HA002;
|
||||
}
|
||||
public String getHA003() {
|
||||
return HA003;
|
||||
}
|
||||
public String getHA004() {
|
||||
return HA004;
|
||||
}
|
||||
public String getHB001() {
|
||||
return HB001;
|
||||
}
|
||||
public String getHB002() {
|
||||
return HB002;
|
||||
}
|
||||
public String getHB003() {
|
||||
return HB003;
|
||||
}
|
||||
public String getHC005() {
|
||||
return HC005;
|
||||
}
|
||||
public String getHC006() {
|
||||
return HC006;
|
||||
}
|
||||
public String getHC007() {
|
||||
return HC007;
|
||||
}
|
||||
public String getHC008() {
|
||||
return HC008;
|
||||
}
|
||||
public String getHC009() {
|
||||
return HC009;
|
||||
}
|
||||
public String getHC010() {
|
||||
return HC010;
|
||||
}
|
||||
public String getHC011() {
|
||||
return HC011;
|
||||
}
|
||||
public String getHC012() {
|
||||
return HC012;
|
||||
}
|
||||
public String getHC013() {
|
||||
return HC013;
|
||||
}
|
||||
public String getHC014() {
|
||||
return HC014;
|
||||
}
|
||||
public String getHC015() {
|
||||
return HC015;
|
||||
}
|
||||
public String getHC016() {
|
||||
return HC016;
|
||||
}
|
||||
public String getHC001() {
|
||||
return HC001;
|
||||
}
|
||||
public String getHC002() {
|
||||
return HC002;
|
||||
}
|
||||
public String getHC003() {
|
||||
return HC003;
|
||||
}
|
||||
public String getHC004() {
|
||||
return HC004;
|
||||
}
|
||||
public String getHD001() {
|
||||
return HD001;
|
||||
}
|
||||
public String getHD002() {
|
||||
return HD002;
|
||||
}
|
||||
|
||||
public String getHD004() {
|
||||
return HD004;
|
||||
}
|
||||
public String getHD005() {
|
||||
return HD005;
|
||||
}
|
||||
|
||||
public String getHD007() {
|
||||
return HD007;
|
||||
}
|
||||
public String getHD008() {
|
||||
return HD008;
|
||||
}
|
||||
|
||||
public String getHD010() {
|
||||
return HD010;
|
||||
}
|
||||
public String getHD011() {
|
||||
return HD011;
|
||||
}
|
||||
public String getHD013() {
|
||||
return HD013;
|
||||
}
|
||||
public String getHD014() {
|
||||
return HD014;
|
||||
}
|
||||
public String getHD016() {
|
||||
return HD016;
|
||||
}
|
||||
public String getHD017() {
|
||||
return HD017;
|
||||
}
|
||||
public String getHE001() {
|
||||
return HE001;
|
||||
}
|
||||
public String getHE002() {
|
||||
return HE002;
|
||||
}
|
||||
public String getHE003() {
|
||||
return HE003;
|
||||
}
|
||||
public String getHE004() {
|
||||
return HE004;
|
||||
}
|
||||
public String getHE005() {
|
||||
return HE005;
|
||||
}
|
||||
public String getHE006() {
|
||||
return HE006;
|
||||
}
|
||||
public String getHE007() {
|
||||
return HE007;
|
||||
}
|
||||
public String getHE008() {
|
||||
return HE008;
|
||||
}
|
||||
public String getHE009() {
|
||||
return HE009;
|
||||
}
|
||||
public String getHE010() {
|
||||
return HE010;
|
||||
}
|
||||
public String getHE011() {
|
||||
return HE011;
|
||||
}
|
||||
public String getHE012() {
|
||||
return HE012;
|
||||
}
|
||||
public String getHE013() {
|
||||
return HE013;
|
||||
}
|
||||
public String getHE014() {
|
||||
return HE014;
|
||||
}
|
||||
public String getHE015() {
|
||||
return HE015;
|
||||
}
|
||||
public String getHE016() {
|
||||
return HE016;
|
||||
}
|
||||
public String getHE017() {
|
||||
return HE017;
|
||||
}
|
||||
public String getHE018() {
|
||||
return HE018;
|
||||
}
|
||||
public String getHE019() {
|
||||
return HE019;
|
||||
}
|
||||
public String getHE020() {
|
||||
return HE020;
|
||||
}
|
||||
public String getHE021() {
|
||||
return HE021;
|
||||
}
|
||||
public String getHE022() {
|
||||
return HE022;
|
||||
}
|
||||
public String getHE023() {
|
||||
return HE023;
|
||||
}
|
||||
public String getHE024() {
|
||||
return HE024;
|
||||
}
|
||||
public String getHE025() {
|
||||
return HE025;
|
||||
}
|
||||
public String getHE026() {
|
||||
return HE026;
|
||||
}
|
||||
public String getHE027() {
|
||||
return HE027;
|
||||
}
|
||||
public String getHE028() {
|
||||
return HE028;
|
||||
}
|
||||
public String getHE029() {
|
||||
return HE029;
|
||||
}
|
||||
public String getHE030() {
|
||||
return HE030;
|
||||
}
|
||||
public String getHE031() {
|
||||
return HE031;
|
||||
}
|
||||
public String getHE032() {
|
||||
return HE032;
|
||||
}
|
||||
public String getHE033() {
|
||||
return HE033;
|
||||
}
|
||||
public String getHE034() {
|
||||
return HE034;
|
||||
}
|
||||
public String getHE035() {
|
||||
return HE035;
|
||||
}
|
||||
public String getHE036() {
|
||||
return HE036;
|
||||
}
|
||||
public String getHF001() {
|
||||
return HF001;
|
||||
}
|
||||
public String getHF002() {
|
||||
return HF002;
|
||||
}
|
||||
public String getHF003() {
|
||||
return HF003;
|
||||
}
|
||||
public String getHF004() {
|
||||
return HF004;
|
||||
}
|
||||
public String getHF005() {
|
||||
return HF005;
|
||||
}
|
||||
public String getHF006() {
|
||||
return HF006;
|
||||
}
|
||||
public String getHF007() {
|
||||
return HF007;
|
||||
}
|
||||
public String getHF008() {
|
||||
return HF008;
|
||||
}
|
||||
public String getHF009() {
|
||||
return HF009;
|
||||
}
|
||||
public String getHF010() {
|
||||
return HF010;
|
||||
}
|
||||
public String getHG001() {
|
||||
return HG001;
|
||||
}
|
||||
public String getHG002() {
|
||||
return HG002;
|
||||
}
|
||||
public String getHG003() {
|
||||
return HG003;
|
||||
}
|
||||
public String getHG004() {
|
||||
return HG004;
|
||||
}
|
||||
public String getHG005() {
|
||||
return HG005;
|
||||
}
|
||||
public String getHG006() {
|
||||
return HG006;
|
||||
}
|
||||
public String getHG007() {
|
||||
return HG007;
|
||||
}
|
||||
public String getHG008() {
|
||||
return HG008;
|
||||
}
|
||||
public String getHG009() {
|
||||
return HG009;
|
||||
}
|
||||
public String getHG010() {
|
||||
return HG010;
|
||||
}
|
||||
public String getHG011() {
|
||||
return HG011;
|
||||
}
|
||||
public String getHG012() {
|
||||
return HG012;
|
||||
}
|
||||
public String getHG013() {
|
||||
return HG013;
|
||||
}
|
||||
public String getHG014() {
|
||||
return HG014;
|
||||
}
|
||||
public String getHG015() {
|
||||
return HG015;
|
||||
}
|
||||
public String getHG016() {
|
||||
return HG016;
|
||||
}
|
||||
public String getHH001() {
|
||||
return HH001;
|
||||
}
|
||||
public String getHH002() {
|
||||
return HH002;
|
||||
}
|
||||
public String getHH003() {
|
||||
return HH003;
|
||||
}
|
||||
public String getHH004() {
|
||||
return HH004;
|
||||
}
|
||||
public String getHH005() {
|
||||
return HH005;
|
||||
}
|
||||
public String getHH006() {
|
||||
return HH006;
|
||||
}
|
||||
public String getHH007() {
|
||||
return HH007;
|
||||
}
|
||||
public String getHH008() {
|
||||
return HH008;
|
||||
}
|
||||
public String getHH009() {
|
||||
return HH009;
|
||||
}
|
||||
public String getHH010() {
|
||||
return HH010;
|
||||
}
|
||||
public String getHH011() {
|
||||
return HH011;
|
||||
}
|
||||
public String getHH012() {
|
||||
return HH012;
|
||||
}
|
||||
public String getHH013() {
|
||||
return HH013;
|
||||
}
|
||||
public String getHH014() {
|
||||
return HH014;
|
||||
}
|
||||
public void setHA001(String hA001) {
|
||||
HA001 = hA001;
|
||||
}
|
||||
public void setHA002(String hA002) {
|
||||
HA002 = hA002;
|
||||
}
|
||||
public void setHA003(String hA003) {
|
||||
HA003 = hA003;
|
||||
}
|
||||
public void setHA004(String hA004) {
|
||||
HA004 = hA004;
|
||||
}
|
||||
public void setHB001(String hB001) {
|
||||
HB001 = hB001;
|
||||
}
|
||||
public void setHB002(String hB002) {
|
||||
HB002 = hB002;
|
||||
}
|
||||
public void setHB003(String hB003) {
|
||||
HB003 = hB003;
|
||||
}
|
||||
public void setHC005(String hC005) {
|
||||
HC005 = hC005;
|
||||
}
|
||||
public void setHC006(String hC006) {
|
||||
HC006 = hC006;
|
||||
}
|
||||
public void setHC007(String hC007) {
|
||||
HC007 = hC007;
|
||||
}
|
||||
public void setHC008(String hC008) {
|
||||
HC008 = hC008;
|
||||
}
|
||||
public void setHC009(String hC009) {
|
||||
HC009 = hC009;
|
||||
}
|
||||
public void setHC010(String hC010) {
|
||||
HC010 = hC010;
|
||||
}
|
||||
public void setHC011(String hC011) {
|
||||
HC011 = hC011;
|
||||
}
|
||||
public void setHC012(String hC012) {
|
||||
HC012 = hC012;
|
||||
}
|
||||
public void setHC013(String hC013) {
|
||||
HC013 = hC013;
|
||||
}
|
||||
public void setHC014(String hC014) {
|
||||
HC014 = hC014;
|
||||
}
|
||||
public void setHC015(String hC015) {
|
||||
HC015 = hC015;
|
||||
}
|
||||
public void setHC016(String hC016) {
|
||||
HC016 = hC016;
|
||||
}
|
||||
public void setHC001(String hC001) {
|
||||
HC001 = hC001;
|
||||
}
|
||||
public void setHC002(String hC002) {
|
||||
HC002 = hC002;
|
||||
}
|
||||
public void setHC003(String hC003) {
|
||||
HC003 = hC003;
|
||||
}
|
||||
public void setHC004(String hC004) {
|
||||
HC004 = hC004;
|
||||
}
|
||||
public void setHD001(String hD001) {
|
||||
HD001 = hD001;
|
||||
}
|
||||
public void setHD002(String hD002) {
|
||||
HD002 = hD002;
|
||||
}
|
||||
public void setHD004(String hD004) {
|
||||
HD004 = hD004;
|
||||
}
|
||||
public void setHD005(String hD005) {
|
||||
HD005 = hD005;
|
||||
}
|
||||
public void setHD007(String hD007) {
|
||||
HD007 = hD007;
|
||||
}
|
||||
public void setHD008(String hD008) {
|
||||
HD008 = hD008;
|
||||
}
|
||||
public void setHD010(String hD010) {
|
||||
HD010 = hD010;
|
||||
}
|
||||
public void setHD011(String hD011) {
|
||||
HD011 = hD011;
|
||||
}
|
||||
public void setHD013(String hD013) {
|
||||
HD013 = hD013;
|
||||
}
|
||||
public void setHD014(String hD014) {
|
||||
HD014 = hD014;
|
||||
}
|
||||
public void setHD016(String hD016) {
|
||||
HD016 = hD016;
|
||||
}
|
||||
public void setHD017(String hD017) {
|
||||
HD017 = hD017;
|
||||
}
|
||||
public void setHE001(String hE001) {
|
||||
HE001 = hE001;
|
||||
}
|
||||
public void setHE002(String hE002) {
|
||||
HE002 = hE002;
|
||||
}
|
||||
public void setHE003(String hE003) {
|
||||
HE003 = hE003;
|
||||
}
|
||||
public void setHE004(String hE004) {
|
||||
HE004 = hE004;
|
||||
}
|
||||
public void setHE005(String hE005) {
|
||||
HE005 = hE005;
|
||||
}
|
||||
public void setHE006(String hE006) {
|
||||
HE006 = hE006;
|
||||
}
|
||||
public void setHE007(String hE007) {
|
||||
HE007 = hE007;
|
||||
}
|
||||
public void setHE008(String hE008) {
|
||||
HE008 = hE008;
|
||||
}
|
||||
public void setHE009(String hE009) {
|
||||
HE009 = hE009;
|
||||
}
|
||||
public void setHE010(String hE010) {
|
||||
HE010 = hE010;
|
||||
}
|
||||
public void setHE011(String hE011) {
|
||||
HE011 = hE011;
|
||||
}
|
||||
public void setHE012(String hE012) {
|
||||
HE012 = hE012;
|
||||
}
|
||||
public void setHE013(String hE013) {
|
||||
HE013 = hE013;
|
||||
}
|
||||
public void setHE014(String hE014) {
|
||||
HE014 = hE014;
|
||||
}
|
||||
public void setHE015(String hE015) {
|
||||
HE015 = hE015;
|
||||
}
|
||||
public void setHE016(String hE016) {
|
||||
HE016 = hE016;
|
||||
}
|
||||
public void setHE017(String hE017) {
|
||||
HE017 = hE017;
|
||||
}
|
||||
public void setHE018(String hE018) {
|
||||
HE018 = hE018;
|
||||
}
|
||||
public void setHE019(String hE019) {
|
||||
HE019 = hE019;
|
||||
}
|
||||
public void setHE020(String hE020) {
|
||||
HE020 = hE020;
|
||||
}
|
||||
public void setHE021(String hE021) {
|
||||
HE021 = hE021;
|
||||
}
|
||||
public void setHE022(String hE022) {
|
||||
HE022 = hE022;
|
||||
}
|
||||
public void setHE023(String hE023) {
|
||||
HE023 = hE023;
|
||||
}
|
||||
public void setHE024(String hE024) {
|
||||
HE024 = hE024;
|
||||
}
|
||||
public void setHE025(String hE025) {
|
||||
HE025 = hE025;
|
||||
}
|
||||
public void setHE026(String hE026) {
|
||||
HE026 = hE026;
|
||||
}
|
||||
public void setHE027(String hE027) {
|
||||
HE027 = hE027;
|
||||
}
|
||||
public void setHE028(String hE028) {
|
||||
HE028 = hE028;
|
||||
}
|
||||
public void setHE029(String hE029) {
|
||||
HE029 = hE029;
|
||||
}
|
||||
public void setHE030(String hE030) {
|
||||
HE030 = hE030;
|
||||
}
|
||||
public void setHE031(String hE031) {
|
||||
HE031 = hE031;
|
||||
}
|
||||
public void setHE032(String hE032) {
|
||||
HE032 = hE032;
|
||||
}
|
||||
public void setHE033(String hE033) {
|
||||
HE033 = hE033;
|
||||
}
|
||||
public void setHE034(String hE034) {
|
||||
HE034 = hE034;
|
||||
}
|
||||
public void setHE035(String hE035) {
|
||||
HE035 = hE035;
|
||||
}
|
||||
public void setHE036(String hE036) {
|
||||
HE036 = hE036;
|
||||
}
|
||||
public void setHF001(String hF001) {
|
||||
HF001 = hF001;
|
||||
}
|
||||
public void setHF002(String hF002) {
|
||||
HF002 = hF002;
|
||||
}
|
||||
public void setHF003(String hF003) {
|
||||
HF003 = hF003;
|
||||
}
|
||||
public void setHF004(String hF004) {
|
||||
HF004 = hF004;
|
||||
}
|
||||
public void setHF005(String hF005) {
|
||||
HF005 = hF005;
|
||||
}
|
||||
public void setHF006(String hF006) {
|
||||
HF006 = hF006;
|
||||
}
|
||||
public void setHF007(String hF007) {
|
||||
HF007 = hF007;
|
||||
}
|
||||
public void setHF008(String hF008) {
|
||||
HF008 = hF008;
|
||||
}
|
||||
public void setHF009(String hF009) {
|
||||
HF009 = hF009;
|
||||
}
|
||||
public void setHF010(String hF010) {
|
||||
HF010 = hF010;
|
||||
}
|
||||
public void setHG001(String hG001) {
|
||||
HG001 = hG001;
|
||||
}
|
||||
public void setHG002(String hG002) {
|
||||
HG002 = hG002;
|
||||
}
|
||||
public void setHG003(String hG003) {
|
||||
HG003 = hG003;
|
||||
}
|
||||
public void setHG004(String hG004) {
|
||||
HG004 = hG004;
|
||||
}
|
||||
public void setHG005(String hG005) {
|
||||
HG005 = hG005;
|
||||
}
|
||||
public void setHG006(String hG006) {
|
||||
HG006 = hG006;
|
||||
}
|
||||
public void setHG007(String hG007) {
|
||||
HG007 = hG007;
|
||||
}
|
||||
public void setHG008(String hG008) {
|
||||
HG008 = hG008;
|
||||
}
|
||||
public void setHG009(String hG009) {
|
||||
HG009 = hG009;
|
||||
}
|
||||
public void setHG010(String hG010) {
|
||||
HG010 = hG010;
|
||||
}
|
||||
public void setHG011(String hG011) {
|
||||
HG011 = hG011;
|
||||
}
|
||||
public void setHG012(String hG012) {
|
||||
HG012 = hG012;
|
||||
}
|
||||
public void setHG013(String hG013) {
|
||||
HG013 = hG013;
|
||||
}
|
||||
public void setHG014(String hG014) {
|
||||
HG014 = hG014;
|
||||
}
|
||||
public void setHG015(String hG015) {
|
||||
HG015 = hG015;
|
||||
}
|
||||
public void setHG016(String hG016) {
|
||||
HG016 = hG016;
|
||||
}
|
||||
public void setHH001(String hH001) {
|
||||
HH001 = hH001;
|
||||
}
|
||||
public void setHH002(String hH002) {
|
||||
HH002 = hH002;
|
||||
}
|
||||
public void setHH003(String hH003) {
|
||||
HH003 = hH003;
|
||||
}
|
||||
public void setHH004(String hH004) {
|
||||
HH004 = hH004;
|
||||
}
|
||||
public void setHH005(String hH005) {
|
||||
HH005 = hH005;
|
||||
}
|
||||
public void setHH006(String hH006) {
|
||||
HH006 = hH006;
|
||||
}
|
||||
public void setHH007(String hH007) {
|
||||
HH007 = hH007;
|
||||
}
|
||||
public void setHH008(String hH008) {
|
||||
HH008 = hH008;
|
||||
}
|
||||
public void setHH009(String hH009) {
|
||||
HH009 = hH009;
|
||||
}
|
||||
public void setHH010(String hH010) {
|
||||
HH010 = hH010;
|
||||
}
|
||||
public void setHH011(String hH011) {
|
||||
HH011 = hH011;
|
||||
}
|
||||
public void setHH012(String hH012) {
|
||||
HH012 = hH012;
|
||||
}
|
||||
public void setHH013(String hH013) {
|
||||
HH013 = hH013;
|
||||
}
|
||||
public void setHH014(String hH014) {
|
||||
HH014 = hH014;
|
||||
}
|
||||
public String getXT_NO() {
|
||||
return XT_NO;
|
||||
}
|
||||
public void setXT_NO(String xT_NO) {
|
||||
XT_NO = xT_NO;
|
||||
}
|
||||
public String getCARD_HOLDER() {
|
||||
return CARD_HOLDER;
|
||||
}
|
||||
public void setCARD_HOLDER(String cARD_HOLDER) {
|
||||
CARD_HOLDER = cARD_HOLDER;
|
||||
}
|
||||
public String getCARD_NO() {
|
||||
return CARD_NO;
|
||||
}
|
||||
public String getXT_MONTH01() {
|
||||
return XT_MONTH01;
|
||||
}
|
||||
public String getXT_MONTH02() {
|
||||
return XT_MONTH02;
|
||||
}
|
||||
public String getXT_MONTH03() {
|
||||
return XT_MONTH03;
|
||||
}
|
||||
public String getXT_MONTH04() {
|
||||
return XT_MONTH04;
|
||||
}
|
||||
public String getXT_MONTH05() {
|
||||
return XT_MONTH05;
|
||||
}
|
||||
public String getXT_MONTH06() {
|
||||
return XT_MONTH06;
|
||||
}
|
||||
public void setCARD_NO(String cARD_NO) {
|
||||
CARD_NO = cARD_NO;
|
||||
}
|
||||
public void setXT_MONTH01(String xT_MONTH01) {
|
||||
XT_MONTH01 = xT_MONTH01;
|
||||
}
|
||||
public void setXT_MONTH02(String xT_MONTH02) {
|
||||
XT_MONTH02 = xT_MONTH02;
|
||||
}
|
||||
public void setXT_MONTH03(String xT_MONTH03) {
|
||||
XT_MONTH03 = xT_MONTH03;
|
||||
}
|
||||
public void setXT_MONTH04(String xT_MONTH04) {
|
||||
XT_MONTH04 = xT_MONTH04;
|
||||
}
|
||||
public void setXT_MONTH05(String xT_MONTH05) {
|
||||
XT_MONTH05 = xT_MONTH05;
|
||||
}
|
||||
public void setXT_MONTH06(String xT_MONTH06) {
|
||||
XT_MONTH06 = xT_MONTH06;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author wangyan E-mail:wangyan@pospt.cn
|
||||
* @version 创建时间:2017年9月11日 上午9:33:01 类说明
|
||||
*/
|
||||
@Data
|
||||
public class ProductResBase implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6708040074002451511L;
|
||||
/**
|
||||
* 请求结果成功0
|
||||
@ -21,6 +23,7 @@ public class ProductResBase implements Serializable {
|
||||
* 成功code
|
||||
*/
|
||||
public static final String REQUEST_CODE_SUCCESS = "0000";
|
||||
|
||||
/**
|
||||
* 结果 成功0 失败1
|
||||
*/
|
||||
@ -32,40 +35,4 @@ public class ProductResBase implements Serializable {
|
||||
* 成本总计
|
||||
*/
|
||||
private Integer costTotal;
|
||||
|
||||
public Integer getCostTotal() {
|
||||
return costTotal;
|
||||
}
|
||||
|
||||
public ProductResBase setCostTotal(Integer costTotal) {
|
||||
this.costTotal = costTotal;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getResResult() {
|
||||
return resResult;
|
||||
}
|
||||
|
||||
public String getResCode() {
|
||||
return resCode;
|
||||
}
|
||||
|
||||
public String getResMsg() {
|
||||
return resMsg;
|
||||
}
|
||||
|
||||
public ProductResBase setResResult(int resResult) {
|
||||
this.resResult = resResult;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProductResBase setResCode(String resCode) {
|
||||
this.resCode = resCode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProductResBase setResMsg(String resMsg) {
|
||||
this.resMsg = resMsg;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ResultDto<T> implements Serializable {
|
||||
private static final long serialVersionUID = -1417999729205654379L;
|
||||
|
||||
@ -128,28 +131,4 @@ public class ResultDto<T> implements Serializable {
|
||||
public boolean error() {
|
||||
return !success();
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public T getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(T result) {
|
||||
this.result = result;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Seq {
|
||||
private String seq;
|
||||
|
||||
@ -9,17 +12,4 @@ public class Seq {
|
||||
public Seq(String seq) {
|
||||
this.seq = seq;
|
||||
}
|
||||
|
||||
public String getSeq() {
|
||||
return seq;
|
||||
}
|
||||
|
||||
public void setSeq(String seq) {
|
||||
this.seq = seq;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Seq [seq=" + seq + "]";
|
||||
}
|
||||
}
|
||||
|
@ -1,22 +1,9 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TokenAuthResponse {
|
||||
private String token;
|
||||
private String userId;
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
public void setToken(String token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
|
@ -1,24 +1,13 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class TokenAuthWarp extends UUMap<TokenAuthResponse> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String targetUrl;
|
||||
private String success;
|
||||
|
||||
public String getTargetUrl() {
|
||||
return targetUrl;
|
||||
}
|
||||
|
||||
public void setTargetUrl(String targetUrl) {
|
||||
this.targetUrl = targetUrl;
|
||||
}
|
||||
|
||||
public String getSuccess() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public void setSuccess(String success) {
|
||||
this.success = success;
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,5 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class TokenAuthWarp2 extends TokenAuthWarp {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
@ -1,20 +1,15 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class UUMap<T> implements Serializable{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private T result;
|
||||
|
||||
public T getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(T result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
@ -1,28 +1,12 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class UserB {
|
||||
private String name;
|
||||
private String b;
|
||||
private Date date;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getB() {
|
||||
return b;
|
||||
}
|
||||
public void setB(String a) {
|
||||
this.b = a;
|
||||
}
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
}
|
||||
|
@ -1,31 +1,10 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserC {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String prop;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getProp() {
|
||||
return prop;
|
||||
}
|
||||
|
||||
public void setProp(String prop) {
|
||||
this.prop = prop;
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,16 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
* @author 质量过关
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class UserInfoDict implements Serializable {
|
||||
private static final long serialVersionUID = -936213991463284306L;
|
||||
// 用户Id
|
||||
@ -19,61 +21,4 @@ public class UserInfoDict implements Serializable {
|
||||
private String photoPath;
|
||||
private List<ExamInfoDict> examInfoDict;
|
||||
private UserInfoRedundCount userInfoRedundCount;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getRealName() {
|
||||
return realName;
|
||||
}
|
||||
public void setRealName(String realName) {
|
||||
this.realName = realName;
|
||||
}
|
||||
|
||||
public String getPhotoPath() {
|
||||
return photoPath;
|
||||
}
|
||||
public void setPhotoPath(String photoPath) {
|
||||
this.photoPath = photoPath;
|
||||
}
|
||||
|
||||
public List<ExamInfoDict> getExamInfoDict() {
|
||||
return examInfoDict;
|
||||
}
|
||||
public void setExamInfoDict(List<ExamInfoDict> examInfoDict) {
|
||||
this.examInfoDict = examInfoDict;
|
||||
}
|
||||
|
||||
public UserInfoRedundCount getUserInfoRedundCount() {
|
||||
return userInfoRedundCount;
|
||||
}
|
||||
public void setUserInfoRedundCount(UserInfoRedundCount userInfoRedundCount) {
|
||||
this.userInfoRedundCount = userInfoRedundCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
UserInfoDict that = (UserInfoDict) o;
|
||||
return Objects.equals(id, that.id) && Objects.equals(realName, that.realName) && Objects.equals(photoPath, that.photoPath) && Objects.equals(examInfoDict, that.examInfoDict);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, realName, photoPath, examInfoDict);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserInfoDict [id=" + id + ", realName=" + realName + ", photoPath=" + photoPath + ", examInfoDict=" + examInfoDict + ", userInfoRedundCount=" + userInfoRedundCount + "]";
|
||||
}
|
||||
}
|
||||
|
@ -1,38 +1,14 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class UserInfoRedundCount implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8397291070139255181L;
|
||||
|
||||
private String finishedRatio; // 完成率
|
||||
|
||||
private Integer ownershipExamCount; // 自己有多少道题
|
||||
|
||||
private Integer answeredExamCount; // 当前回答了多少道题
|
||||
|
||||
public Integer getOwnershipExamCount() {
|
||||
return ownershipExamCount;
|
||||
}
|
||||
|
||||
public void setOwnershipExamCount(Integer ownershipExamCount) {
|
||||
this.ownershipExamCount = ownershipExamCount;
|
||||
}
|
||||
|
||||
public Integer getAnsweredExamCount() {
|
||||
return answeredExamCount;
|
||||
}
|
||||
|
||||
public void setAnsweredExamCount(Integer answeredExamCount) {
|
||||
this.answeredExamCount = answeredExamCount;
|
||||
}
|
||||
|
||||
public String getFinishedRatio() {
|
||||
return finishedRatio;
|
||||
}
|
||||
|
||||
public void setFinishedRatio(String finishedRatio) {
|
||||
this.finishedRatio = finishedRatio;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,5 +27,11 @@
|
||||
<artifactId>hutool-log</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<version>1.29</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -0,0 +1,133 @@
|
||||
package cn.hutool.setting.yaml;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
|
||||
/**
|
||||
* 基于Snakeyaml的的YAML读写工具
|
||||
*
|
||||
* @author looly
|
||||
* @since 5.7.14
|
||||
*/
|
||||
public class YamlUtil {
|
||||
|
||||
/**
|
||||
* 从classpath或绝对路径加载YAML文件
|
||||
*
|
||||
* @param path YAML路径,相对路径相对classpath
|
||||
* @return 加载的内容,默认Map
|
||||
*/
|
||||
public static Dict loadByPath(String path) {
|
||||
return loadByPath(path, Dict.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从classpath或绝对路径加载YAML文件
|
||||
*
|
||||
* @param <T> Bean类型,默认map
|
||||
* @param path YAML路径,相对路径相对classpath
|
||||
* @param type 加载的Bean类型,即转换为的bean
|
||||
* @return 加载的内容,默认Map
|
||||
*/
|
||||
public static <T> T loadByPath(String path, Class<T> type) {
|
||||
return load(ResourceUtil.getStream(path), type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从流中加载YAML
|
||||
*
|
||||
* @param <T> Bean类型,默认map
|
||||
* @param in 流
|
||||
* @param type 加载的Bean类型,即转换为的bean
|
||||
* @return 加载的内容,默认Map
|
||||
*/
|
||||
public static <T> T load(InputStream in, Class<T> type) {
|
||||
return load(IoUtil.getBomReader(in), type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载YAML,加载完毕后关闭{@link Reader}
|
||||
*
|
||||
* @param reader {@link Reader}
|
||||
* @return 加载的Map
|
||||
*/
|
||||
public static Dict load(Reader reader) {
|
||||
return load(reader, Dict.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载YAML,加载完毕后关闭{@link Reader}
|
||||
*
|
||||
* @param <T> Bean类型,默认map
|
||||
* @param reader {@link Reader}
|
||||
* @param type 加载的Bean类型,即转换为的bean
|
||||
* @return 加载的内容,默认Map
|
||||
*/
|
||||
public static <T> T load(Reader reader, Class<T> type) {
|
||||
return load(reader, type, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载YAML
|
||||
*
|
||||
* @param <T> Bean类型,默认map
|
||||
* @param reader {@link Reader}
|
||||
* @param type 加载的Bean类型,即转换为的bean
|
||||
* @param isCloseReader 加载完毕后是否关闭{@link Reader}
|
||||
* @return 加载的内容,默认Map
|
||||
*/
|
||||
public static <T> T load(Reader reader, Class<T> type, boolean isCloseReader) {
|
||||
Assert.notNull(reader, "Reader must be not null !");
|
||||
if (null == type) {
|
||||
//noinspection unchecked
|
||||
type = (Class<T>) Object.class;
|
||||
}
|
||||
|
||||
final Yaml yaml = new Yaml();
|
||||
try {
|
||||
return yaml.loadAs(reader, type);
|
||||
} finally {
|
||||
if (isCloseReader) {
|
||||
IoUtil.close(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将Bean对象或者Map写出到{@link Writer}
|
||||
*
|
||||
* @param object 对象
|
||||
* @param writer {@link Writer}
|
||||
*/
|
||||
public static void dump(Object object, Writer writer) {
|
||||
final DumperOptions options = new DumperOptions();
|
||||
options.setIndent(2);
|
||||
options.setPrettyFlow(true);
|
||||
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
||||
|
||||
dump(object, writer, options);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将Bean对象或者Map写出到{@link Writer}
|
||||
*
|
||||
* @param object 对象
|
||||
* @param writer {@link Writer}
|
||||
* @param dumperOptions 输出风格
|
||||
*/
|
||||
public static void dump(Object object, Writer writer, DumperOptions dumperOptions) {
|
||||
if (null == dumperOptions) {
|
||||
dumperOptions = new DumperOptions();
|
||||
}
|
||||
final Yaml yaml = new Yaml(dumperOptions);
|
||||
yaml.dump(object, writer);
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* YAML文件的读写封装,基于snakeyaml
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.setting.yaml;
|
@ -1,4 +1,4 @@
|
||||
package cn.hutool.setting.test;
|
||||
package cn.hutool.setting;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.log.LogFactory;
|
@ -1,4 +1,4 @@
|
||||
package cn.hutool.setting.test;
|
||||
package cn.hutool.setting;
|
||||
|
||||
import cn.hutool.setting.dialect.PropsUtil;
|
||||
import org.junit.Assert;
|
@ -1,12 +1,10 @@
|
||||
package cn.hutool.setting.test;
|
||||
package cn.hutool.setting;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.setting.Setting;
|
||||
|
||||
/**
|
||||
* Setting单元测试
|
||||
*
|
@ -1,10 +1,8 @@
|
||||
package cn.hutool.setting.test;
|
||||
package cn.hutool.setting;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.setting.SettingUtil;
|
||||
|
||||
public class SettingUtilTest {
|
||||
|
||||
@Test
|
@ -0,0 +1,36 @@
|
||||
package cn.hutool.setting.yaml;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class YamlUtilTest {
|
||||
|
||||
@Test
|
||||
public void loadByPathTest() {
|
||||
final Dict result = YamlUtil.loadByPath("test.yaml", Dict.class);
|
||||
|
||||
Assert.assertEquals("John", result.getStr("firstName"));
|
||||
|
||||
final List<Integer> numbers = result.getByPath("contactDetails.number");
|
||||
Assert.assertEquals(123456789, (int) numbers.get(0));
|
||||
Assert.assertEquals(456786868, (int) numbers.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void dumpTest() {
|
||||
final Dict dict = Dict.create()
|
||||
.set("name", "hutool")
|
||||
.set("count", 1000);
|
||||
|
||||
YamlUtil.dump(
|
||||
dict
|
||||
, FileUtil.getWriter("d:/test/dump.yaml", CharsetUtil.CHARSET_UTF_8, false));
|
||||
}
|
||||
}
|
13
hutool-setting/src/test/resources/test.yaml
Normal file
13
hutool-setting/src/test/resources/test.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
firstName: "John"
|
||||
lastName: "Doe"
|
||||
age: 31
|
||||
contactDetails:
|
||||
- type: "mobile"
|
||||
number: 123456789
|
||||
- type: "landline"
|
||||
number: 456786868
|
||||
homeAddress:
|
||||
line: "Xyz, DEF Street"
|
||||
city: "City Y"
|
||||
state: "State Y"
|
||||
zip: 345657
|
@ -9,6 +9,7 @@ import org.junit.Test;
|
||||
public class OshiPrintTest {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void printCpuInfo(){
|
||||
Console.log(OshiUtil.getCpuInfo());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user