Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/tmp/mid-7737'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Mar 16, 2022
1 parent ff1a70d commit 2753c17
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
package com.evolveum.midpoint.report.impl.activity;

import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.repo.common.ObjectResolver;
import com.evolveum.midpoint.repo.common.activity.run.ActivityRunException;
Expand All @@ -21,12 +20,11 @@
import com.evolveum.midpoint.schema.SearchResultList;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.util.Handler;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.util.exception.CommonException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;

import org.jetbrains.annotations.NotNull;

import java.util.*;

import static com.evolveum.midpoint.util.MiscUtil.or0;
Expand Down Expand Up @@ -69,24 +67,34 @@ public void saveReportFile(ReportDataWriter<? extends ExportedReportDataRow, ? e

/**
* Search container objects for iterative task.
* Temporary until will be implemented iterative search for audit records and containerable objects.
*/
public List<? extends Containerable> searchRecords(Class<? extends Containerable> type,
public void searchRecordsIteratively(
Class<? extends Containerable> type,
ObjectQuery query,
Handler<Containerable> handler,
Collection<SelectorOptions<GetOperationOptions>> options,
OperationResult result) throws CommonException {
if (AuditEventRecordType.class.equals(type)) {
@NotNull SearchResultList<AuditEventRecordType> auditRecords = modelAuditService.searchObjects(query, options, runningTask, result);
return Objects.requireNonNullElse(auditRecords.getList(), Collections.emptyList());
modelAuditService.searchObjectsIterative(
query,
options,
(value, lResult) -> handler.handle(value),
runningTask,
result);
} else if (ObjectType.class.isAssignableFrom(type)) {
Class<? extends ObjectType> objectType = type.asSubclass(ObjectType.class);
SearchResultList<? extends PrismObject<? extends ObjectType>> results = modelService.searchObjects(objectType, query, options, runningTask, result);
List<ObjectType> list = new ArrayList<>();
results.forEach(object -> list.add(object.asObjectable()));
return list;
modelService.searchObjectsIterative(
objectType,
query,
(object, lResult) -> handler.handle(object.asObjectable()),
options,
runningTask,
result);
} else {
SearchResultList<? extends Containerable> containers = modelService.searchContainers(type, query, options, runningTask, result);
return Objects.requireNonNullElse(containers.getList(), Collections.emptyList());
// Temporary - until iterative search is available
SearchResultList<? extends Containerable> containers =
modelService.searchContainers(type, query, options, runningTask, result);
containers.forEach(handler::handle);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.jetbrains.annotations.NotNull;

import java.util.Collection;
import java.util.List;

public class ContainerableReportDataSource implements ReportDataSource<Containerable> {

Expand Down Expand Up @@ -58,11 +57,6 @@ public Collection<SelectorOptions<GetOperationOptions>> getOptions() {

@Override
public void run(Handler<Containerable> handler, OperationResult result) throws CommonException {
List<? extends Containerable> objects = support.searchRecords(
type,
query,
options,
result);
objects.forEach(handler::handle);
support.searchRecordsIteratively(type, query, handler, options, result);
}
}

0 comments on commit 2753c17

Please sign in to comment.