@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Equal)) return false; Equal equal = (Equal) o; if (!equal.getAttribute().equals(getAttribute())) return false; if (!equal.getValue().equals(getValue())) return false; return true; } }
@Override protected boolean matchesNonSimpleAttribute(Attribute<O, Object> attribute, O object, QueryOptions queryOptions) { for (Object attributeValue : attribute.getValues(object, queryOptions)) { if (attributeValue.equals(getValue())) { return true; } } return false; }
private Query<O> compatibleQuery(Query<O> query) { if (query instanceof Equal) { if (((Equal) query).getAttributeType() == byte[].class) { Equal<O, Object> newQuery = new SpecialEquality<>(query); return newQuery; } } return query; }