[New] ObjectHelper.equals() converts enums to string, if other is String
This commit is contained in:
parent
8976dd950b
commit
9751bacb80
|
@ -16,11 +16,9 @@ public class ObjectHelper {
|
||||||
if (left == null || right == null)
|
if (left == null || right == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (left instanceof Collection) {
|
if (left instanceof Collection<?> leftCollection) {
|
||||||
Collection<?> leftCollection = (Collection) left;
|
|
||||||
|
|
||||||
if (right instanceof Collection) {
|
if (right instanceof Collection<?> rightCollection) {
|
||||||
Collection<?> rightCollection = (Collection) right;
|
|
||||||
if (leftCollection.size() != rightCollection.size())
|
if (leftCollection.size() != rightCollection.size())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -44,8 +42,7 @@ public class ObjectHelper {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (right instanceof String[]) {
|
if (right instanceof String[] rightArr) {
|
||||||
String[] rightArr = (String[]) right;
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (Object l : leftCollection) {
|
for (Object l : leftCollection) {
|
||||||
|
@ -70,8 +67,10 @@ public class ObjectHelper {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left instanceof String && right.getClass().isEnum())
|
if (left instanceof String && right instanceof Enum<?>)
|
||||||
right = ((Enum<?>) right).name();
|
right = ((Enum<?>) right).name();
|
||||||
|
else if (right instanceof String && left instanceof Enum<?>)
|
||||||
|
left = ((Enum<?>) left).name();
|
||||||
|
|
||||||
if (left.getClass() != right.getClass())
|
if (left.getClass() != right.getClass())
|
||||||
return false;
|
return false;
|
||||||
|
@ -113,11 +112,9 @@ public class ObjectHelper {
|
||||||
if (right == null)
|
if (right == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (left instanceof Collection) {
|
if (left instanceof Collection<?> leftCollection) {
|
||||||
Collection<?> leftCollection = (Collection<?>) left;
|
|
||||||
|
|
||||||
if (right instanceof Collection) {
|
if (right instanceof Collection<?> rightCollection) {
|
||||||
Collection<?> rightCollection = (Collection<?>) right;
|
|
||||||
for (Object l : leftCollection) {
|
for (Object l : leftCollection) {
|
||||||
for (Object r : rightCollection) {
|
for (Object r : rightCollection) {
|
||||||
if (contains(l, r, ignoreCase))
|
if (contains(l, r, ignoreCase))
|
||||||
|
@ -128,8 +125,7 @@ public class ObjectHelper {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (right instanceof String[]) {
|
if (right instanceof String[] rightArr) {
|
||||||
String[] rightArr = (String[]) right;
|
|
||||||
for (Object l : leftCollection) {
|
for (Object l : leftCollection) {
|
||||||
for (Object r : rightArr) {
|
for (Object r : rightArr) {
|
||||||
if (contains(l, r, ignoreCase))
|
if (contains(l, r, ignoreCase))
|
||||||
|
@ -148,11 +144,9 @@ public class ObjectHelper {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left instanceof String) {
|
if (left instanceof String leftString) {
|
||||||
String leftString = (String) left;
|
|
||||||
|
|
||||||
if (right instanceof String[]) {
|
if (right instanceof String[] rightArr) {
|
||||||
String[] rightArr = (String[]) right;
|
|
||||||
|
|
||||||
if (ignoreCase) {
|
if (ignoreCase) {
|
||||||
leftString = leftString.toLowerCase();
|
leftString = leftString.toLowerCase();
|
||||||
|
@ -176,8 +170,7 @@ public class ObjectHelper {
|
||||||
if (right.getClass().isEnum())
|
if (right.getClass().isEnum())
|
||||||
right = ((Enum<?>) right).name();
|
right = ((Enum<?>) right).name();
|
||||||
|
|
||||||
if (right instanceof String) {
|
if (right instanceof String rightString) {
|
||||||
String rightString = (String) right;
|
|
||||||
|
|
||||||
if (ignoreCase)
|
if (ignoreCase)
|
||||||
return leftString.toLowerCase().contains(rightString.toLowerCase());
|
return leftString.toLowerCase().contains(rightString.toLowerCase());
|
||||||
|
@ -191,8 +184,7 @@ public class ObjectHelper {
|
||||||
return left.equals(right);
|
return left.equals(right);
|
||||||
|
|
||||||
// try to coerce the right side to the left side
|
// try to coerce the right side to the left side
|
||||||
if (right instanceof String) {
|
if (right instanceof String rightString) {
|
||||||
String rightString = (String) right;
|
|
||||||
Object rightO;
|
Object rightO;
|
||||||
if (left instanceof Integer) {
|
if (left instanceof Integer) {
|
||||||
rightO = Integer.valueOf(rightString);
|
rightO = Integer.valueOf(rightString);
|
||||||
|
@ -223,11 +215,9 @@ public class ObjectHelper {
|
||||||
if (right == null)
|
if (right == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (right instanceof Collection) {
|
if (right instanceof Collection<?> collectionRight) {
|
||||||
Collection<?> collectionRight = (Collection<?>) right;
|
|
||||||
|
|
||||||
if (left instanceof Collection) {
|
if (left instanceof Collection<?> collectionLeft) {
|
||||||
Collection<?> collectionLeft = (Collection<?>) left;
|
|
||||||
for (Object l : collectionLeft) {
|
for (Object l : collectionLeft) {
|
||||||
for (Object r : collectionRight) {
|
for (Object r : collectionRight) {
|
||||||
if (equals(r, l, ignoreCase))
|
if (equals(r, l, ignoreCase))
|
||||||
|
@ -237,8 +227,7 @@ public class ObjectHelper {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
} else if (left instanceof String[]) {
|
} else if (left instanceof String[] leftArr) {
|
||||||
String[] leftArr = (String[]) left;
|
|
||||||
for (Object r : collectionRight) {
|
for (Object r : collectionRight) {
|
||||||
for (Object l : leftArr) {
|
for (Object l : leftArr) {
|
||||||
if (equals(r, l, ignoreCase))
|
if (equals(r, l, ignoreCase))
|
||||||
|
@ -258,8 +247,7 @@ public class ObjectHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (right instanceof Object[]) {
|
if (right instanceof Object[] arr) {
|
||||||
Object[] arr = (Object[]) right;
|
|
||||||
for (Object o : arr) {
|
for (Object o : arr) {
|
||||||
if (equals(left, o, ignoreCase))
|
if (equals(left, o, ignoreCase))
|
||||||
return true;
|
return true;
|
||||||
|
@ -283,9 +271,7 @@ public class ObjectHelper {
|
||||||
if (right == null)
|
if (right == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (left instanceof String && right instanceof String) {
|
if (left instanceof String str && right instanceof String subStr) {
|
||||||
String str = (String) left;
|
|
||||||
String subStr = (String) right;
|
|
||||||
|
|
||||||
if (ignoreCase)
|
if (ignoreCase)
|
||||||
return str.toLowerCase().startsWith(subStr.toLowerCase());
|
return str.toLowerCase().startsWith(subStr.toLowerCase());
|
||||||
|
@ -303,9 +289,7 @@ public class ObjectHelper {
|
||||||
if (right == null)
|
if (right == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (left instanceof String && right instanceof String) {
|
if (left instanceof String str && right instanceof String subStr) {
|
||||||
String str = (String) left;
|
|
||||||
String subStr = (String) right;
|
|
||||||
|
|
||||||
if (ignoreCase)
|
if (ignoreCase)
|
||||||
return str.toLowerCase().endsWith(subStr.toLowerCase());
|
return str.toLowerCase().endsWith(subStr.toLowerCase());
|
||||||
|
|
Loading…
Reference in New Issue