Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.gitee.apanlh.util.base.Eq Maven / Gradle / Ivy
package com.gitee.apanlh.util.base;
import com.gitee.apanlh.exp.CallRuntimeException;
import com.gitee.apanlh.util.func.FuncCall;
import com.gitee.apanlh.util.func.FuncExecute;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* equals整合方法
*
* @author Pan
*/
public class Eq {
/**
* 构造函数
*
* @author Pan
*/
private Eq() {
// 不允许外部实例
super();
}
/**
* 字符串比较
*
* @author Pan
* @param s1 字符串1
* @param s2 字符串2
* @return boolean
*/
public static boolean str(String s1, String s2) {
return StringUtils.eq(s1, s2);
}
/**
* 字符串与字符串缓冲比较
*
* @author Pan
* @param s1 字符串1
* @param s2 字符串2
* @return boolean
*/
public static boolean str(String s1, StringBuilder s2) {
return StringUtils.eq(s1, s2);
}
/**
* 字符串与字符串缓冲比较
*
* @author Pan
* @param s1 字符串1
* @param s2 字符串2
* @return boolean
*/
public static boolean str(String s1, StringBuffer s2) {
return StringUtils.eq(s1, s2);
}
/**
* 字符串与字符比较
*
* @author Pan
* @param s1 字符串1
* @param c1 字符1
* @return boolean
*/
public static boolean str(String s1, Character c1) {
return StringUtils.eq(s1, c1);
}
/**
* 字符串比较
* 只要任意一个匹配返回true
*
* @author Pan
* @param s1 字符串1
* @param strings 一个或多个字符串
* @return boolean
*/
public static boolean strOr(String s1, String... strings) {
return StringUtils.eqOr(s1, strings);
}
/**
* 字符串比较
* 只要任意一个匹配返回true
*
* @author Pan
* @param s1 字符串1
* @param list 一个或多个字符串
* @return boolean
*/
public static boolean strOr(String s1, List list) {
return StringUtils.eqOr(s1, list);
}
/**
* 字符串与枚举比较
* 只要任意一个匹配返回true
*
* @author Pan
* @param s1 字符串
* @param es 一个或多个枚举
* @return boolean
*/
public static boolean strOr(String s1, Enum>... es) {
return StringUtils.eqOr(s1, es);
}
/**
* 类比较
*
* @author Pan
* @param c1 类1
* @param c2 类2
* @return boolean
*/
public static boolean classes(Class> c1, Class> c2) {
return ObjectUtils.eq(c1, c2);
}
/**
* 类比较
*
* @author Pan
* @param 数据类型
* @param obj1 值1
* @param obj2 值2
* @return boolean
*/
public static boolean object(T obj1, T obj2) {
return ObjectUtils.eq(obj1, obj2);
}
/**
* 对象值比较
* 包含匹配模式
* 传递匹配值其中包含匹配值obj1返回true
*
* @author Pan
* @param 数据类型
* @param o1 值1
* @param o2 值2(一个或多个值)
* @return boolean
*/
public static boolean objectOr(T o1, T... o2) {
return ObjectUtils.eqOr(o1, o2);
}
/**
* 比较两个集合是否一致
* 包含模式
* 验证是否全包含元素
*
* @author Pan
* @param 数据类型
* @param list 集合1
* @param list2 集合2
* @return boolean
*/
public static boolean collection(Collection list, Collection list2) {
return CollUtils.eq(list, list2);
}
/**
* 比较两个集合是否一致
* 全匹配模式
* 严格验证顺序,值
*
* @author Pan
* @param 数据类型
* @param list 集合1
* @param list2 集合2
* @return boolean
*/
public static boolean collectionByOrder(Collection list, Collection list2) {
return CollUtils.eqByOrder(list, list2);
}
/**
* 比较两者Map
* 其中只比较Map中的value值
* 不严格限制顺序
*
* @author Pan
* @param 键类型
* @param 值类型
* @param map Map1
* @param map2 Map2
* @return boolean
*/
public static boolean mapValue(Map map, Map map2) {
return MapUtils.eqByValue(map, map2);
}
/**
* 比较两者Map
* value匹配模式(比较Map中的value值)
* 不严格限制顺序
*
* @author Pan
* @param 键类型
* @param 值类型
* @param map Map1
* @param map2 Map2
* @return boolean
*/
public static boolean mapByKeyValue(Map map, Map map2) {
return MapUtils.eqByKeyValue(map, map2);
}
/**
* 比较两者Map
* 其中比较规则Key+Value值
* 严格要求按照顺序比较
*
* @author Pan
* @param 键类型
* @param 值类型
* @param map Map1
* @param map2 Map2
* @return boolean
*/
public static boolean mapByOrder(Map map, Map map2) {
return MapUtils.eqByOrder(map, map2);
}
/**
* 对象数组比较
* 两个数组均为为null返回false
*
* @author Pan
* @param 数据类型
* @param o1 数组1
* @param o2 数组2
* @return boolean
*/
public static boolean array(T[] o1, T[] o2) {
return ArrayUtils.eq(o1, o2);
}
/**
* short数组比较
* 对比两者short[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源short[]
* @param a2 目标short[]
* @return boolean
*/
public static boolean array(short[] a1, short[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* int数组比较
* 对比两者int[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源int[]
* @param a2 目标int[]
* @return boolean
*/
public static boolean array(int[] a1, int[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* long数组比较
* 对比两者long[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源long[]
* @param a2 目标long[]
* @return boolean
*/
public static boolean array(long[] a1, long[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* float数组比较
* 对比两者float[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源float[]
* @param a2 目标float[]
* @return boolean
*/
public static boolean array(float[] a1, float[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* double数组比较
* 对比两者double[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源double[]
* @param a2 目标double[]
* @return boolean
*/
public static boolean array(double[] a1, double[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* char数组比较
* 对比两者char[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源char[]
* @param a2 目标char[]
* @return boolean
*/
public static boolean array(char[] a1, char[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* boolean数组比较
* 对比两者boolean[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param a1 来源boolean[]
* @param a2 目标boolean[]
* @return boolean
*/
public static boolean array(boolean[] a1, boolean[] a2) {
return ArrayUtils.eq(a1, a2);
}
/**
* 字节数组比较
* 对比两者byte[]是否一致
* 两个数组均为为null返回false
*
* @author Pan
* @param b1 来源byte[]
* @param b2 目标byte[]
* @return boolean
*/
public static boolean array(byte[] b1, byte[] b2) {
return ArrayUtils.eq(b1, b2);
}
/**
* 枚举比较
*
* @author Pan
* @param e1 枚举1
* @param e2 枚举2
* @return boolean
*/
public static boolean enums(Enum> e1, Enum> e2) {
return e1.equals(e2);
}
/**
* 枚举与字符串比较
* 注意:是根据枚举的name方法进行比较,使用时请注意重写name方法
*
* @author Pan
* @param e 枚举1
* @param s1 字符串2
* @return boolean
*/
public static boolean enums(Enum> e, String s1) {
if (s1 == null) {
return false;
}
return e.name().equals(s1);
}
/**
* 枚举比较
* 包含匹配模式
* 传递匹配值其中包含匹配值任意一个返回true
*
* @author Pan
* @param e1 枚举1
* @param es 一个或多个枚举
* @return boolean
*/
public static boolean enumsOr(Enum> e1, Enum>... es) {
for (int i = 0; i < es.length; i++) {
if (enums(e1, es[i])) {
return true;
}
}
return false;
}
/**
* 枚举比较
* 匹配所有才返回true
*
* @author Pan
* @param e1 枚举1
* @param es 一个或多个枚举
* @return boolean
*/
public static boolean enumsAnd(Enum> e1, Enum>... es) {
for (int i = 0; i < es.length; i++) {
if (!enums(e1, es[i])) {
return false;
}
}
return true;
}
/**
* 比较值,如果ture执行回调
*
* @author Pan
* @param 值类型
* @param value 值
* @param eqValue 比较值
* @param callValue 回调值
* @return V
*/
public static T call(T value, T eqValue, T callValue) {
return ChooseEq.autoEq(value, eqValue) ? callValue : null;
}
/**
* 比较值,如果ture执行回调
* 有返回值
*
* @author Pan
* @param 值类型
* @param value 值
* @param eqValue 比较值
* @param call 回调函数
* @return V
*/
public static T call(T value, T eqValue, FuncCall call) {
try {
return ChooseEq.autoEq(value, eqValue) ? call.call() : null;
} catch (Exception e) {
throw new CallRuntimeException(e.getMessage(), e);
}
}
/**
* 比较值,如果ture执行回调
* 无返回值
*
* @author Pan
* @param 值类型
* @param value 值
* @param eqValue 比较值
* @param execute 回调函数
*/
public static void call(T value, T eqValue, FuncExecute execute) {
if (ChooseEq.autoEq(value, eqValue)) {
execute.execute();
}
}
/**
* 构建值匹配器
* 默认单匹配值模式
*
* @author Pan
* @param 值类型
* @param 返回类型
* @return ChooseEq
*/
public static ChooseEq matcher() {
return ChooseEq.create();
}
/**
* 构建值匹配器
* 自定义匹配值模式
*
* @author Pan
* @param 值类型
* @param 返回类型
* @param multiMode true多匹配模式,false单匹配模式
* @return ChooseEq
*/
public static ChooseEq matcher(boolean multiMode) {
return ChooseEq.create();
}
}