插件开发工具库,推荐依赖该工具库。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

118 lines
3.4 KiB

package com.fanruan.api.conf;
import com.fanruan.api.conf.impl.ColConf;
import com.fanruan.api.conf.impl.ObjConf;
import com.fanruan.api.conf.impl.ObjectColConf;
import com.fanruan.api.conf.impl.ObjectMapConf;
import com.fanruan.api.conf.impl.SimConf;
import com.fr.config.holder.Conf;
import com.fr.config.holder.impl.MapConf;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-08-15
* 配置对象操作类
* TODO:补充单元测试
*/
@SuppressWarnings("unchecked")
public class HolderKit {
/**
* 初始化一个基本对象类型的配置
*
* @param t 初始值
* @param <T> 类型
* @return 配置对象
*/
public static <T> Conf<T> simple(T t) {
return new SimConf<>(t);
}
/**
* 初始化一个对象类型的配置
*
* @param t 初始值
* @param type 对象class类
* @param <T> 类型
* @return 配置对象
*/
public static <T> Conf<T> obj(T t, Class<T> type) {
return new ObjConf<>(t, type);
}
/**
* 初始化一个集合类型的配置
*
* @param collection 初始值
* @param type 对象class类型
* @param <T> 类型
* @return 配置对象
*/
public static <T> ObjectColConf<Collection<T>> objCollection(Collection<T> collection, Class<T> type) {
return new ObjectColConf<>(collection, type);
}
/**
* 初始化一个集合类型的配置
*
* @param collection 初始值
* @param type 对象class类型
* @param order 是否是有序的配置
* @param <T> 类型
* @return 配置对象
*/
public static <T> ObjectColConf<Collection<T>> objCollection(Collection<T> collection, Class<T> type, boolean order) {
return new ObjectColConf<>(collection, type, order);
}
/**
* 初始化一个字典类型的配置
*
* @param map 初始值
* @param keyType 键class类型
* @param valueType 值class类型
* @param <K> 键类型
* @param <V> 值类型
* @return 配置对象
*/
public static <K, V> ObjectMapConf<Map<K, V>> objMap(Map<K, V> map, Class<K> keyType, Class<V> valueType) {
return new ObjectMapConf<>(map, keyType, valueType);
}
/**
* 初始化一个字典类型的配置
*
* @param map 初始值
* @param keyType 键class类型
* @param valueType 值class类型
* @param order 是否是有序配置
* @param <K> 键类型
* @param <V> 值类型
* @return 配置对象
*/
public static <K, V> ObjectMapConf<Map<K, V>> objMap(Map<K, V> map, Class<K> keyType, Class<V> valueType, boolean order) {
return new ObjectMapConf<>(map, keyType, valueType, order);
}
/**
* 初始化一个集合类型的配置
*
* @param collection 集合
* @param valueType 值类型
* @param <K> 类型
* @return 配置对象
*/
public static <K> ColConf<Collection<K>> collection(Collection<K> collection, Class<K> valueType) {
return new ColConf(collection, valueType);
}
public static MapConf<Map<String, String>> map(HashMap<Object, Object> map, Class<String> keyType, Class<String> valueType) {
return new MapConf<>(map, keyType, valueType);
}
}