Rather than performing class comparisons, we perform a simple
instanceof check... and then rather than adding items one at a time, we
use Collections.addAll().
Change-Id: I2e73788ab6f1625291970ad9b32d3b5d18ee8205
Signed-off-by: Robert Varga <rovarga@cisco.com>
}
public List<?> execute(Object o) {
}
public List<?> execute(Object o) {
- List<Object> result = new LinkedList<>();
if (o == null) {
return null;
}
if (o == null) {
return null;
}
- if (Set.class.isAssignableFrom(o.getClass())) {
- Set<?> lst = (Set<?>) o;
- for (Object oo : lst) {
+ List<Object> result = new LinkedList<>();
+ if (o instanceof Set) {
+ for (Object oo : (Set<?>) o) {
addToResult(result, execute(oo));
}
addToResult(result, execute(oo));
}
- return result;
- } else if (List.class.isAssignableFrom(o.getClass())) {
- List<?> lst = (List<?>) o;
- for (Object oo : lst) {
+ } else if (o instanceof List) {
+ for (Object oo : (List<?>) o) {
addToResult(result, execute(oo));
}
addToResult(result, execute(oo));
}
- return result;
- } else if (Map.class.isAssignableFrom(o.getClass())) {
- Map<?, ?> map = (Map<?, ?>) o;
- for (Object oo : map.values()) {
+ } else if (o instanceof Map) {
+ for (Object oo : ((Map<?, ?>) o).values()) {
addToResult(result, execute(oo));
}
addToResult(result, execute(oo));
}
+ } else {
+ addToResult(result, XSQLCriteria.getValue(o, this.property));
-
- addToResult(result, XSQLCriteria.getValue(o, this.property));
-
return result;
}
private static void addToResult(List<Object> result, Object o) {
return result;
}
private static void addToResult(List<Object> result, Object o) {
- if (o == null) {
- return;
- }
- if (Set.class.isAssignableFrom(o.getClass())) {
- Set<?> lst = (Set<?>) o;
- for (Object oo : lst) {
- result.add(oo);
- }
- } else if (List.class.isAssignableFrom(o.getClass())) {
- List<?> lst = (List<?>) o;
- for (Object oo : lst) {
- result.add(oo);
- }
- } else if (Map.class.isAssignableFrom(o.getClass())) {
- Map<?, ?> map = (Map<?, ?>) o;
- for (Object oo : map.values()) {
- result.add(oo);
- }
- } else {
+ if (o instanceof Set) {
+ result.addAll((Set<?>)o);
+ } else if (o instanceof List) {
+ result.addAll((List<?>)o);
+ } else if (o instanceof Map) {
+ result.addAll(((Map<?, ?>)o).values());
+ } else if (o != null) {