@Override public QueryCriteria visit(ContainsAttributesQueryCriteria criteria, Void arg) { Set<AttributeReference> combinedAttRefs = combineAttributeReferences(criteria.getAttributeReference()); if (combinedAttRefs.size() == 1) { return criteria; } DisjunctionBuilder disjunctionBuilder = new DisjunctionBuilder(); for (AttributeReference combinedAttRef : combinedAttRefs) { disjunctionBuilder.add( new ContainsAttributesQueryCriteria( combinedAttRef, criteria.getAttributes(), criteria.isExclusive())); } return disjunctionBuilder.build(); }
@Override public QueryCriteria visit( ContainsAttributesQueryCriteria criteria, List<AttributeReference.Key> arg) { return new ContainsAttributesQueryCriteria( new AttributeReference(arg), criteria.getAttributes(), criteria.isExclusive()); }