com.evolveum.midpoint.repo.api.RepositoryService.countObjects()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(14.7k)|赞(0)|评价(0)|浏览(119)

本文整理了Java中com.evolveum.midpoint.repo.api.RepositoryService.countObjects方法的一些代码示例,展示了RepositoryService.countObjects的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RepositoryService.countObjects方法的具体详情如下:
包路径:com.evolveum.midpoint.repo.api.RepositoryService
类名称:RepositoryService
方法名:countObjects

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());
}

相关文章

微信公众号

最新文章

更多