@Override public QueryCriteria visit(TypeIsQueryCriteria 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 TypeIsQueryCriteria(combinedAttRef, criteria.getExpectedType())); } return disjunctionBuilder.build(); }
@Override public QueryCriteria visit(TypeIsQueryCriteria criteria, List<AttributeReference.Key> arg) { return new TypeIsQueryCriteria(new AttributeReference(arg), criteria.getExpectedType()); }