protected <O extends ObjectType> SearchResultList<PrismObject<O>> assertSearch(Class<O> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, int expectedResults) throws Exception { ObjectQuery originalQuery = query != null ? query.clone() : null; return assertSearch(type, query, options, new SearchAssertion<O>() { @Override public void assertObjects(String message, List<PrismObject<O>> objects) throws Exception { if (objects.size() > expectedResults) { failDeny(message, type, originalQuery, expectedResults, objects.size()); } else if (objects.size() < expectedResults) { failAllow(message, type, originalQuery, expectedResults, objects.size()); } } @Override public void assertCount(int count) throws Exception { if (count > expectedResults) { failDeny("count", type, originalQuery, expectedResults, count); } else if (count < expectedResults) { failAllow("count", type, originalQuery, expectedResults, count); } } }); }
public SearchResultMetadata searchObjectsIterativeRepository( ProvisioningContext ctx, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, com.evolveum.midpoint.schema.ResultHandler<ShadowType> repoHandler, OperationResult parentResult) throws SchemaException, ConfigurationException, ObjectNotFoundException, CommunicationException, ExpressionEvaluationException { ObjectQuery repoQuery = query.clone(); processQueryMatchingRules(repoQuery, ctx.getObjectClassDefinition()); return repositoryService.searchObjectsIterative(ShadowType.class, repoQuery, repoHandler, options, true, parentResult); }
public static ObjectQuery evaluateQueryExpressions(ObjectQuery origQuery, ExpressionVariables variables, ExpressionFactory expressionFactory, PrismContext prismContext, String shortDesc, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException { if (origQuery == null) { return null; } ObjectQuery query = origQuery.clone(); ObjectFilter evaluatedFilter = evaluateFilterExpressionsInternal(query.getFilter(), variables, expressionFactory, prismContext, shortDesc, task, result); query.setFilter(evaluatedFilter); return query; }
public ObjectQuery narrowQueryForWorkBucket(Task workerTask, ObjectQuery query, Class<? extends ObjectType> type, Function<ItemPath, ItemDefinition<?>> itemDefinitionProvider, WorkBucketType workBucket, OperationResult result) throws SchemaException, ObjectNotFoundException { Context ctx = createContext(workerTask.getOid(), () -> true, result); TaskWorkManagementType config = ctx.getWorkStateConfiguration(); AbstractWorkSegmentationType bucketsConfig = TaskWorkStateTypeUtil.getWorkSegmentationConfiguration(config); WorkBucketContentHandler handler = handlerFactory.getHandler(workBucket.getContent()); List<ObjectFilter> conjunctionMembers = new ArrayList<>( handler.createSpecificFilters(workBucket, bucketsConfig, type, itemDefinitionProvider)); if (conjunctionMembers.isEmpty()) { return query; } ObjectFilter existingFilter = query != null ? query.getFilter() : null; if (existingFilter != null) { conjunctionMembers.add(existingFilter); } ObjectFilter updatedFilter; if (conjunctionMembers.isEmpty()) { updatedFilter = null; } else if (conjunctionMembers.size() == 1) { updatedFilter = conjunctionMembers.get(0); } else { updatedFilter = prismContext.queryFactory().createAnd(conjunctionMembers); } ObjectQuery updatedQuery = query != null ? query.clone() : prismContext.queryFactory().createQuery(); updatedQuery.setFilter(updatedFilter); // TODO update sorting criteria return updatedQuery; }
private ObjectQuery addFilter(ObjectQuery query, ObjectFilter additionalFilter) { ObjectQuery newQuery; QueryFactory queryFactory = prismContext.queryFactory(); if (query == null) { newQuery = queryFactory.createQuery(additionalFilter); } else { newQuery = query.clone(); if (query.getFilter() == null) { newQuery.setFilter(additionalFilter); } else { newQuery.setFilter(queryFactory.createAnd(query.getFilter(), additionalFilter)); } } return newQuery; }
if (query != null) { maxSize = query.getPaging() != null ? query.getPaging().getMaxSize() : null; pagedQuery = query.clone(); } else { maxSize = null;
ObjectQuery pagedQuery = query != null ? query.clone() : prismContext.queryFactory().createQuery();
query = query.clone(); ObjectPaging paging = prismContext.queryFactory().createPaging();