@Override public Boolean visit(IsGreaterOrEqualQueryCriteria criteria, KVValue<?> arg) { KVValue<?> referenced = resolve(criteria.getAttributeReference(), arg); if (referenced == null) { return false; } Object innerValue = criteria.getValue().getValue(); if (innerValue instanceof Number) { if (referenced.getValue() instanceof Number) { Number refNumber = (Number) referenced.getValue(); return refNumber.doubleValue() >= ((Number) innerValue).doubleValue(); } return false; } if (innerValue instanceof String) { if (referenced.getValue() instanceof String) { return ((String) referenced.getValue()).compareTo((String) innerValue) >= 0; } return false; } return false; }
@Override public Boolean visit(IsGreaterQueryCriteria criteria, KVValue<?> arg) { KVValue<?> referenced = resolve(criteria.getAttributeReference(), arg); if (referenced == null) { return false; } Object innerValue = criteria.getValue().getValue(); if (innerValue instanceof Number) { if (referenced.getValue() instanceof Number) { Number refNumber = (Number) referenced.getValue(); return refNumber.doubleValue() > ((Number) innerValue).doubleValue(); } return false; } if (innerValue instanceof String) { if (referenced.getValue() instanceof String) { return ((String) referenced.getValue()).compareTo((String) innerValue) > 0; } return false; } return false; }
@Override public Boolean visit(IsLessOrEqualQueryCriteria criteria, KVValue<?> arg) { KVValue<?> referenced = resolve(criteria.getAttributeReference(), arg); if (referenced == null) { return false; } Object innerValue = criteria.getValue().getValue(); if (innerValue instanceof Number) { if (referenced.getValue() instanceof Number) { Number refNumber = (Number) referenced.getValue(); return refNumber.doubleValue() <= ((Number) innerValue).doubleValue(); } return false; } if (innerValue instanceof String) { if (referenced.getValue() instanceof String) { return ((String) referenced.getValue()).compareTo((String) innerValue) <= 0; } return false; } return false; }
@Override public Boolean visit(IsLessQueryCriteria criteria, KVValue<?> arg) { KVValue<?> referenced = resolve(criteria.getAttributeReference(), arg); if (referenced == null) { return false; } Object innerValue = criteria.getValue().getValue(); if (innerValue instanceof Number) { if (referenced.getValue() instanceof Number) { Number refNumber = (Number) referenced.getValue(); return refNumber.doubleValue() < ((Number) innerValue).doubleValue(); } return false; } if (innerValue instanceof String) { if (referenced.getValue() instanceof String) { return ((String) referenced.getValue()).compareTo((String) innerValue) < 0; } return false; } return false; }
@Override public Boolean visit(ModIsQueryCriteria criteria, KVValue<?> arg) { KVValue<?> referenced = resolve(criteria.getAttributeReference(), arg); if (referenced == null) { return false; } if (referenced.getValue() instanceof Integer || referenced.getValue() instanceof Long) { long refValue = ((Number) referenced.getValue()).longValue(); long reminder = refValue % criteria.getDivisor().getValue().longValue(); return reminder == criteria.getReminder().getValue().longValue(); } return false; }