@Override public String debugDump(int indent) { StringBuilder sb = new StringBuilder(); DebugUtil.indentDebugDump(sb, indent); sb.append("TYPE: "); sb.append(type.getLocalPart()); sb.append('\n'); if (filter != null) { sb.append(filter.debugDump(indent + 1)); } return sb.toString(); }
@Override public String debugDump(int indent) { StringBuilder sb = new StringBuilder(); DebugUtil.indentDebugDump(sb, indent); sb.append(getDebugDumpOperationName()).append(":"); for (ObjectFilter filter : getConditions()){ sb.append("\n"); sb.append(filter.debugDump(indent + 1)); } return sb.toString(); }
@Test public void test180OrEmpty() throws Exception { System.out.println("===[ test180OrEmpty ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFactory().createOr(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test120AndEmpty() throws Exception { System.out.println("===[ test120AndEmpty ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFactory().createAnd(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test020None() throws Exception { System.out.println("===[ test020None ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .none().buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test030Undefined() throws Exception { System.out.println("===[ test030Undefined ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .undefined().buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test010All() throws Exception { System.out.println("===[ test010All ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .all().buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test170OrLevel1Undefined() throws Exception { System.out.println("===[ test170OrLevel1Undefined ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFactory().createOr(prismContext.queryFactory().createUndefined()); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test310NotNone() throws Exception { System.out.println("===[ test310NotNone ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .not().none() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test410TypeNone() throws Exception { System.out.println("===[ test410TypeNone ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .type(UserType.class).none() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test300NotAll() throws Exception { System.out.println("===[ test300NotAll ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .not().all() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test510ExistsNone() throws Exception { System.out.println("===[ test510ExistsNone ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .exists(UserType.F_ASSIGNMENT).none() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
private Filter convertFilterToIcf(ObjectQuery query, ObjectClassComplexTypeDefinition objectClassDefinition) throws SchemaException { Filter filter = null; if (query != null && query.getFilter() != null) { FilterInterpreter interpreter = new FilterInterpreter(objectClassDefinition); LOGGER.trace("Start to convert filter: {}", query.getFilter().debugDump()); filter = interpreter.interpret(query.getFilter(), connIdNameMapper); if (LOGGER.isTraceEnabled()) { LOGGER.trace("ConnId filter: {}", ConnIdUtil.dump(filter)); } } return filter; }
@Test public void test160OrLevel1WithoutAll() throws Exception { System.out.println("===[ test160OrLevel1WithoutAll ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .none() .or().undefined() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test110AndLevel1WithoutNone() throws Exception { System.out.println("===[ test110AndLevel1WithoutNone ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .all() .and().undefined() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test330NotNotNone() throws Exception { System.out.println("===[ test330NotNotNone ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .not().block().not().none().endBlock() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof NoneFilter); }
@Test public void test320NotNotAll() throws Exception { System.out.println("===[ test320NotNotAll ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .not().block().not().all().endBlock() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test150OrLevel1() throws Exception { System.out.println("===[ test150OrLevel1 ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .all() .or().none() .or().undefined() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified == null || simplified instanceof AllFilter); }
@Test public void test500ExistsAll() throws Exception { System.out.println("===[ test500ExistsAll ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN ObjectFilter filter = prismContext.queryFor(UserType.class) .exists(UserType.F_ASSIGNMENT).all() .buildFilter(); System.out.println("Original filter:\n" + filter.debugDump()); // THEN ObjectFilter simplified = ObjectQueryUtil.simplify(filter, prismContext); System.out.println("Simplified filter:\n" + DebugUtil.debugDump(simplified)); assertTrue("Wrong simplified filter: " + simplified, simplified instanceof ExistsFilter); ExistsFilter existsSimplified = (ExistsFilter) simplified; assertEquals("Wrong simplified filter path", UserType.F_ASSIGNMENT, existsSimplified.getFullPath()); assertTrue("Wrong simplified filter subfilter: " + existsSimplified.getFilter(), ObjectQueryUtil.isAll(existsSimplified.getFilter())); }
@NotNull private <T extends Containerable> RQuery getInterpretedQuery2Whole(Session session, Class<T> type, ObjectQuery query, boolean interpretCount, Collection<SelectorOptions<GetOperationOptions>> options) throws QueryException { if (query != null) { LOGGER.info("QUERY TYPE TO CONVERT :\n{}", (query.getFilter() != null ? query.getFilter().debugDump(3) : null)); } QueryEngine2 engine = new QueryEngine2(baseHelper.getConfiguration(), extItemDictionary, prismContext, relationRegistry); RQuery rQuery = engine.interpret(query, type, options, interpretCount, session); //just test if DB will handle it or throws some exception if (interpretCount) { rQuery.uniqueResult(); } else { rQuery.list(); } return rQuery; }