use of io.spine.client.Target in project core-java by SpineEventEngine.
the class EntityQueryProcessor method process.
@Override
public ImmutableCollection<Any> process(Query query) {
final ImmutableList.Builder<Any> resultBuilder = ImmutableList.builder();
final Target target = query.getTarget();
final FieldMask fieldMask = query.getFieldMask();
final Iterator<? extends Entity> entities;
if (target.getIncludeAll() && fieldMask.getPathsList().isEmpty()) {
entities = repository.loadAll();
} else {
final EntityFilters filters = target.getFilters();
entities = repository.find(filters, fieldMask);
}
while (entities.hasNext()) {
final Entity entity = entities.next();
final Message state = entity.getState();
final Any packedState = AnyPacker.pack(state);
resultBuilder.add(packedState);
}
final ImmutableList<Any> result = resultBuilder.build();
return result;
}
Aggregations