I played around a bit and came up with this:
Code:
private static AdvancedCriteria addToCriteria(AdvancedCriteria oldAC, AdvancedCriteria newAC) {
if (oldAC == null && newAC == null)
return null;
else if (oldAC != null && newAC == null)
return oldAC;
else if (oldAC == null && newAC != null)
return newAC;
else {
if (oldAC.asCriterion().getOperatorId().equals(DefaultOperators.And.getID())) {
@SuppressWarnings("unchecked")
Map<String, Object> oldCritList = oldAC.getCriteriaAsMap();
@SuppressWarnings("unchecked")
ArrayList<Object> s = (ArrayList<Object>) oldCritList.get("criteria");
s.add(newAC.asCriterion());
AdvancedCriteria returnAC = AdvancedCriteria.fromCollections(s, DefaultOperators.And.getID());
return returnAC;
} else
return new AdvancedCriteria(DefaultOperators.And, new Criterion[] { oldAC.asCriterion(), newAC.asCriterion() });
}
}
Is this safe to use?
Best regards,
Blama
Leave a comment: