本文整理了Java中com.evolveum.midpoint.repo.api.RepositoryService.countObjects
方法的一些代码示例,展示了RepositoryService.countObjects
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RepositoryService.countObjects
方法的具体详情如下:
包路径:com.evolveum.midpoint.repo.api.RepositoryService
类名称:RepositoryService
方法名:countObjects
暂无
代码示例来源:origin: Evolveum/midpoint
/**
* Used to count objects using model or any similar higher-level interface. Defaults to repository count.
*/
protected <O extends ObjectType> Integer countObjects(Class<O> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> queryOptions, Task coordinatorTask, OperationResult opResult) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
return repositoryService.countObjects(type, query, queryOptions, opResult);
}
代码示例来源:origin: Evolveum/midpoint
public <O extends ObjectType> Integer countObjects(Class<O> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, Task task, OperationResult parentResult) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
if (ObjectTypes.isClassManagedByProvisioning(type)) {
return provisioning.countObjects(type, query, options, task, parentResult);
} else {
return cacheRepositoryService.countObjects(type, query, options, parentResult);
}
}
代码示例来源:origin: Evolveum/midpoint
@Deprecated
@Override
public <T extends ObjectType> int countObjects(Class<T> type, ObjectQuery query, OperationResult parentResult)
throws SchemaException {
// TODO use cached query result if applicable
log("Cache: PASS countObjects ({})", type.getSimpleName());
Long startTime = repoOpStart();
try {
return repositoryService.countObjects(type, query, null, parentResult);
} finally {
repoOpEnd(startTime);
}
}
代码示例来源:origin: Evolveum/midpoint
@Override
public <T extends ObjectType> int countObjects(Class<T> type, ObjectQuery query,
Collection<SelectorOptions<GetOperationOptions>> options, OperationResult parentResult)
throws SchemaException {
// TODO use cached query result if applicable
log("Cache: PASS countObjects ({})", type.getSimpleName());
Long startTime = repoOpStart();
try {
return repositoryService.countObjects(type, query, options, parentResult);
} finally {
repoOpEnd(startTime);
}
}
代码示例来源:origin: Evolveum/midpoint
@Nullable
private Long computeExpectedTotalIfApplicable(Class<? extends ObjectType> type, ObjectQuery query,
Collection<SelectorOptions<GetOperationOptions>> queryOptions, boolean useRepository,
WorkBucketType workBucket, Task localCoordinatorTask,
OperationResult opResult) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException,
SecurityViolationException, ExpressionEvaluationException {
if (!countObjectsOnStart) {
return null;
} else if (TaskWorkStateTypeUtil.hasLimitations(workBucket)) {
// We avoid computing expected total if we are processing a bucket -- actually we could but we should
// not display it as 'task expected total'
return null;
} else {
Long expectedTotal;
if (!useRepository) {
Integer expectedTotalInt = countObjects(type, query, queryOptions, localCoordinatorTask, opResult);
if (expectedTotalInt != null) {
expectedTotal = (long) expectedTotalInt; // conversion would fail on null
} else {
expectedTotal = null;
}
} else {
expectedTotal = (long) repositoryService.countObjects(type, query, queryOptions, opResult);
}
LOGGER.trace("{}: expecting {} objects to be processed", taskName, expectedTotal);
return expectedTotal;
}
}
代码示例来源:origin: Evolveum/midpoint
protected void assertShadows(int expected, OperationResult result) throws SchemaException {
int actual = repositoryService.countObjects(ShadowType.class, null, null, result);
if (expected != actual) {
if (actual > 20) {
AssertJUnit.fail("Unexpected number of (repository) shadows. Expected " + expected + " but was " + actual + " (too many to display)");
}
ResultHandler<ShadowType> handler = (object, parentResult) -> {
display("found shadow", object);
return true;
};
repositoryService.searchObjectsIterative(ShadowType.class, null, handler, null, true, result);
AssertJUnit.fail("Unexpected number of (repository) shadows. Expected " + expected + " but was " + actual);
}
}
代码示例来源:origin: Evolveum/midpoint
@Override
public <T extends ObjectType> int countObjects(Class<T> type,
ObjectQuery query,
OperationResult parentResult) throws SchemaException {
OperationResult result = parentResult.createMinorSubresult(DOT_INTERFACE + ".countObjects");
result.addParam("objectType", type);
result.addParam("query", query);
result.addContext(OperationResult.CONTEXT_IMPLEMENTATION_CLASS, TaskManagerQuartzImpl.class);
try {
return repositoryService.countObjects(type, query, null, parentResult);
} finally {
result.computeStatus();
}
}
代码示例来源:origin: Evolveum/midpoint
protected void assertShadows(int expectedCount) throws SchemaException {
OperationResult result = new OperationResult(TestOpenDj.class.getName() + ".assertShadows");
int actualCount = repositoryService.countObjects(ShadowType.class, null, null, result);
if (actualCount != expectedCount) {
ResultHandler<ShadowType> handler = (object, parentResult) -> {
display("Repo shadow", object);
return true;
};
repositoryService.searchObjectsIterative(ShadowType.class, null, handler, null, true, result);
assertEquals("Unexpected number of shadows in the repo", expectedCount, actualCount);
}
}
代码示例来源:origin: Evolveum/midpoint
protected int countAssignees(String targetOid, QName relation, OperationResult result) throws SchemaException {
PrismReferenceValue refVal = itemFactory().createReferenceValue();
refVal.setOid(targetOid);
refVal.setRelation(relation);
ObjectQuery query = prismContext.queryFor(FocusType.class)
.item(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF).ref(refVal)
.build();
return repositoryService.countObjects(FocusType.class, query, null, result);
}
代码示例来源:origin: Evolveum/midpoint
@Test
public void importByOid() {
String[] input = new String[]{"-m", getMidpointHome(), "import", "-o", "00000000-0000-0000-0000-111100000002",
"-i", RESOURCES_FOLDER + "/objects.zip", "-z"};
ByteArrayOutputStream bos = new ByteArrayOutputStream();
executeTest(null,
context -> {
RepositoryService repo = context.getRepository();
OperationResult result = new OperationResult("count objects");
int count = repo.countObjects(ObjectType.class, null, null, result);
AssertJUnit.assertEquals(0, count);
},
context -> {
RepositoryService repo = context.getRepository();
OperationResult result = new OperationResult("count users");
int count = repo.countObjects(UserType.class, null, null, result);
AssertJUnit.assertEquals(1, count);
},
true, true, input);
List<String> out = getSystemOut();
AssertJUnit.assertEquals(out.toString(), 5, out.size());
AssertJUnit.assertTrue(getSystemErr().isEmpty());
}
代码示例来源:origin: Evolveum/midpoint
private void assertObjectsFoundByCount(ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options,
int expectedCount) throws Exception {
OperationResult result = new OperationResult("count");
int count = repositoryService.countObjects(UserType.class, query, options, result);
result.recomputeStatus();
assertTrue(result.isSuccess());
assertEquals("Wrong # of results found: " + query, expectedCount, count);
}
代码示例来源:origin: Evolveum/midpoint
pagedQuery.setPaging(paging);
offset = 0;
remaining = repositoryService.countObjects(type, query, options, result);
} else {
offset = paging.getOffset() != null ? paging.getOffset() : 0;
remaining = paging.getMaxSize() != null ? paging.getMaxSize() : repositoryService.countObjects(type, query, options, result) - offset;
代码示例来源:origin: Evolveum/midpoint
@Test
public void test110DeleteAll() throws Exception {
OperationResult result = new OperationResult("test110DeleteAll");
final List<PrismObject<UserType>> objects = new ArrayList<>();
ResultHandler<UserType> handler = (object, parentResult) -> {
objects.add(object);
try {
repositoryService.deleteObject(UserType.class, object.getOid(), parentResult);
} catch (ObjectNotFoundException e) {
throw new SystemException(e);
}
return true;
};
repositoryService.searchObjectsIterative(UserType.class, null, handler, null, true, result);
result.recomputeStatus();
assertTrue(result.isSuccess());
assertObjects(objects, COUNT);
int count = repositoryService.countObjects(UserType.class, null, null, result);
assertEquals("Wrong # of objects after operation", 0, count);
}
代码示例来源:origin: Evolveum/midpoint
@Override
public void execute() throws Exception {
RepositoryService repository = context.getRepository();
FileReference fileReference = options.getFilter();
if (fileReference != null && options.getFilter() == null) {
throw new NinjaException("Type must be defined");
}
List<ObjectTypes> types = NinjaUtils.getTypes(options.getType());
int total = 0;
OperationResult result = new OperationResult(OPERATION_COUNT);
for (ObjectTypes type : types) {
ObjectQuery query = NinjaUtils.createObjectQuery(options.getFilter(), context, type.getClassDefinition());
int count = repository.countObjects(type.getClassDefinition(), query, new ArrayList<>(), result);
if (count == 0 && options.getType() == null) {
continue;
}
log.info("{}:\t{}", type.name(), count);
total += count;
}
log.info("===\nTotal:\t{}", total);
}
}
代码示例来源:origin: Evolveum/midpoint
protected void checkOrgGraph() throws SchemaException {
OperationResult result = new OperationResult("temp");
int numberOfOrgsInRepo = repositoryService.countObjects(OrgType.class, null, null, result);
info("Checking graph with repo. Orgs in repo: " + numberOfOrgsInRepo + ", orgs in graph: " + orgGraph.vertexSet().size());
assertTrue("# of orgs in repo (" + numberOfOrgsInRepo + ") is different from # of orgs in graph (" + orgGraph.vertexSet().size() + ")",
numberOfOrgsInRepo == orgGraph.vertexSet().size());
for (String oid : orgGraph.vertexSet()) {
//info("Checking " + oid);
OrgType orgType;
try {
orgType = repositoryService.getObject(OrgType.class, oid, null, result).asObjectable();
} catch (ObjectNotFoundException|SchemaException e) {
throw new AssertionError("Couldn't fetch " + oid, e);
}
assertTrue(orgGraph.vertexSet().contains(orgType.getOid()));
Set<String> parentOidsInRepo = new HashSet<>();
for (ObjectReferenceType ort : orgType.getParentOrgRef()) {
if (orgGraph.vertexSet().contains(ort.getOid())) { // i.e. the parent does exist
parentOidsInRepo.add(ort.getOid());
}
}
Set<String> parentOidsInGraph = new HashSet<>();
for (DefaultEdge edge : orgGraph.outgoingEdgesOf(oid)) {
parentOidsInGraph.add(orgGraph.getEdgeTarget(edge));
}
assertEquals("Unexpected parentRefOrg set in " + orgType, parentOidsInGraph, parentOidsInRepo);
}
info("Graph is OK w.r.t. repo");
}
代码示例来源:origin: Evolveum/midpoint
/**
* Returns numbers of assignees with the given relation name.
*/
private int getNumberOfAssigneesExceptMyself(AbstractRoleType target, String selfOid, QName relation, OperationResult result)
throws SchemaException {
if (target.getOid() == null) {
return 0;
}
S_AtomicFilterExit q = prismContext.queryFor(FocusType.class)
.item(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF).ref(
prismContext.itemFactory().createReferenceValue(target.getOid()).relation(relation));
if (selfOid != null) {
q = q.and().not().id(selfOid);
}
ObjectQuery query = q.build();
return repositoryService.countObjects(FocusType.class, query, null, result);
}
代码示例来源:origin: Evolveum/midpoint
@Test
public void test120DeleteHalf() throws Exception {
OperationResult result = new OperationResult("test120DeleteHalf");
createObjects();
final List<PrismObject<UserType>> objects = new ArrayList<>();
ResultHandler<UserType> handler = (object, parentResult) -> {
objects.add(object);
try {
int number = Integer.parseInt(object.asObjectable().getCostCenter());
if (number % 2 == 0) {
repositoryService.deleteObject(UserType.class, object.getOid(), parentResult);
}
} catch (ObjectNotFoundException e) {
throw new SystemException(e);
}
return true;
};
repositoryService.searchObjectsIterative(UserType.class, null, handler, null, true, result);
result.recomputeStatus();
assertTrue(result.isSuccess());
assertObjects(objects, COUNT);
int count = repositoryService.countObjects(UserType.class, null, null, result);
assertEquals("Wrong # of objects after operation", COUNT/2, count);
ObjectQuery query = prismContext.queryFor(UserType.class)
.asc(UserType.F_NAME)
.build();
List<PrismObject<UserType>> objectsAfter = repositoryService.searchObjects(UserType.class, query, null, result);
objectsAfter.forEach(o -> System.out.println("Exists: " + o.asObjectable().getName()));
}
代码示例来源:origin: Evolveum/midpoint
int count = repositoryService.countObjects(ObjectType.class, objectQuery, null, result);
assertEquals(3, count);
.item(F_NAME).containsPoly("a").matchingOrig()
.build();
count = repositoryService.countObjects(ObjectType.class, objectQuery, null, result);
assertEquals(22, count);
代码示例来源:origin: Evolveum/midpoint
@Test
public void testReindex() throws Exception {
final String TEST_NAME = "testReindex";
TestUtil.displayTestTitle(TEST_NAME);
OperationResult result = new OperationResult(TEST_NAME);
PrismObject<UserType> user = prismContext.createObjectable(UserType.class)
.name("unstable")
.asPrismObject();
ItemPath UNSTABLE_PATH = ItemPath.create(UserType.F_EXTENSION, "unstable");
PrismPropertyDefinition<String> unstableDef = user.getDefinition().findPropertyDefinition(UNSTABLE_PATH);
PrismProperty<String> unstable = unstableDef.instantiate();
unstable.setRealValue("hi");
user.addExtensionItem(unstable);
String oid = repositoryService.addObject(user, null, result);
// brutal hack -- may stop working in the future!
unstableDef.toMutable().setIndexed(true);
repositoryService.modifyObject(UserType.class, oid, emptySet(), getModifyOptions(), result);
ObjectQuery query = prismContext.queryFor(UserType.class)
.item(UNSTABLE_PATH).eq("hi")
.build();
int count = repositoryService.countObjects(UserType.class, query, null, result);
assertEquals("Wrong # of objects found", 1, count);
}
代码示例来源:origin: Evolveum/midpoint
private <T extends ObjectType> void checkQueryResult(Class<T> type, String oid, OrgFilter.Scope scope, int count)
throws Exception {
LOGGER.info("checkQueryResult");
ObjectQuery query = prismContext.queryFor(type)
.isInScopeOf(oid, scope)
.asc(F_NAME)
.build();
OperationResult result = new OperationResult("checkQueryResult");
List<PrismObject<T>> objects = repositoryService.searchObjects(type, query, null, result);
for (PrismObject object : objects) {
LOGGER.info("{}", object.getOid());
}
int realCount = objects.size();
assertEquals("Expected count doesn't match for searchObjects " + query, count, realCount);
result.computeStatusIfUnknown();
assertTrue(result.isSuccess());
realCount = repositoryService.countObjects(type, query, null, result);
assertEquals("Expected count doesn't match for countObjects " + query, count, realCount);
result.computeStatusIfUnknown();
assertTrue(result.isSuccess());
}
内容来源于网络,如有侵权,请联系作者删除!