Search in sources :

Example 16 with Target

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;
}
Also used : Entity(io.spine.server.entity.Entity) Target(io.spine.client.Target) Message(com.google.protobuf.Message) ImmutableList(com.google.common.collect.ImmutableList) EntityFilters(io.spine.client.EntityFilters) Any(com.google.protobuf.Any) FieldMask(com.google.protobuf.FieldMask)

Aggregations

Target (io.spine.client.Target)16 Test (org.junit.Test)10 Message (com.google.protobuf.Message)4 Subscription (io.spine.client.Subscription)4 Topic (io.spine.client.Topic)4 Any (com.google.protobuf.Any)3 EntityFilters (io.spine.client.EntityFilters)3 Query (io.spine.client.Query)3 ImmutableList (com.google.common.collect.ImmutableList)2 Maps.newHashMap (com.google.common.collect.Maps.newHashMap)2 FieldMask (com.google.protobuf.FieldMask)2 EntityId (io.spine.client.EntityId)2 EntityStateUpdate (io.spine.client.EntityStateUpdate)2 SubscriptionUpdate (io.spine.client.SubscriptionUpdate)2 Response (io.spine.core.Response)2 Version (io.spine.core.Version)2 GivenVersion (io.spine.core.given.GivenVersion)2 AbstractVersionableEntity (io.spine.server.entity.AbstractVersionableEntity)2 VersionableEntity (io.spine.server.entity.VersionableEntity)2 TenantAwareTest (io.spine.server.tenant.TenantAwareTest)2