test_class.declarator: PRODUCER_ID = pack(GivenEventMessage.ENTITY_ID)
test_class.modifier: private static final
test_class.original_string: private static final Any PRODUCER_ID = pack(GivenEventMessage.ENTITY_ID);
test_class.type: Any
test_class.var_name: PRODUCER_ID
test_class.declarator: context
test_class.modifier: private
test_class.original_string: private BoundedContext context;
test_class.type: BoundedContext
test_class.var_name: context
test_class.file: server/src/test/java/io/spine/server/projection/ProjectionRepositoryTest.java
test_class.identifier: ProjectionRepositoryTest
test_class.superclass: extends RecordBasedRepositoryTest<TestProjection, ProjectId, Project>
test_case.body: @Test
      @DisplayName("update columns for multiple entities")
      void updateColumnsForMultiple() {
          // Store three projections to the repository.
          ProjectId id1 = createId(1);
          ProjectId id2 = createId(2);
          ProjectId id3 = createId(3);
          TestProjectionRepository repository = repository();
          TestProjection projection1 = new TestProjection(id1);
          TestProjection projection2 = new TestProjection(id2);
          TestProjection projection3 = new TestProjection(id3);
          repository.store(projection1);
          repository.store(projection2);
          repository.store(projection3);
  
          // Apply the column update to two of the three entities.
          repository.applyMigration(ImmutableSet.of(id1, id2), new UpdateProjectionColumns<>());
  
          // Check that entities to which migration has been applied now have column values updated.
          QueryFilter filter1 = QueryFilter.eq(Project.Column.idString(), id1.toString());
          QueryFilter filter2 = QueryFilter.eq(Project.Column.idString(), id2.toString());
          QueryFilter filter3 = QueryFilter.eq(Project.Column.idString(), id3.toString());
  
          TargetFilters filters = targetFilters(filter1, filter2, filter3);
  
          Iterator<TestProjection> found =
                  repository.find(filters, ResponseFormat.getDefaultInstance());
  
          ImmutableList<TestProjection> results = ImmutableList.copyOf(found);
          Project expectedState1 = projection1
                  .state()
                  .toBuilder()
                  .setIdString(projection1.getIdString())
                  .build();
          Project expectedState2 = projection2
                  .state()
                  .toBuilder()
                  .setIdString(projection2.getIdString())
                  .build();
          assertThat(results).hasSize(2);
          assertThat(results)
                  .comparingElementsUsing(entityState())
                  .containsExactly(expectedState1, expectedState2);
      }
test_case.class_method_signature: ProjectionRepositoryTest.updateColumnsForMultiple()
test_case.full_signature: @Test @DisplayName("update columns for multiple entities") void updateColumnsForMultiple()
test_case.identifier: updateColumnsForMultiple
test_case.invocations: createId createId createId repository store store store applyMigration of eq idString toString eq idString toString eq idString toString targetFilters find getDefaultInstance copyOf build setIdString toBuilder state getIdString build setIdString toBuilder state getIdString hasSize assertThat containsExactly comparingElementsUsing assertThat entityState
test_case.modifiers: @Test @DisplayName("update columns for multiple entities")
test_case.parameters: ()
test_case.return: void
test_case.signature: void updateColumnsForMultiple()
focal_class.declarator: inbox
focal_class.modifier: private @MonotonicNonNull
focal_class.original_string: private @MonotonicNonNull Inbox<I> inbox;
focal_class.type: Inbox<I>
focal_class.var_name: inbox
focal_class.declarator: catchUpProcess
focal_class.modifier: private @MonotonicNonNull
focal_class.original_string: private @MonotonicNonNull CatchUpProcess<I> catchUpProcess;
focal_class.type: CatchUpProcess<I>
focal_class.var_name: catchUpProcess
focal_class.declarator: cache
focal_class.modifier: private @MonotonicNonNull
focal_class.original_string: private @MonotonicNonNull RepositoryCache<I, P> cache;
focal_class.type: RepositoryCache<I, P>
focal_class.var_name: cache
focal_class.file: server/src/main/java/io/spine/server/projection/ProjectionRepository.java
focal_class.identifier: ProjectionRepository
focal_class.class_method_signature: ProjectionRepository.registerWith(BoundedContext context)
focal_class.full_signature: @Override @OverridingMethodsMustInvokeSuper public void registerWith(BoundedContext context)
focal_class.identifier: registerWith
focal_class.modifiers: @Override @OverridingMethodsMustInvokeSuper public
focal_class.parameters: (BoundedContext context)
focal_class.return: void
focal_class.signature: void registerWith(BoundedContext context)
focal_class.class_method_signature: ProjectionRepository.initCatchUp(BoundedContext context, Delivery delivery)
focal_class.full_signature: private void initCatchUp(BoundedContext context, Delivery delivery)
focal_class.identifier: initCatchUp
focal_class.modifiers: private
focal_class.parameters: (BoundedContext context, Delivery delivery)
focal_class.return: void
focal_class.signature: void initCatchUp(BoundedContext context, Delivery delivery)
focal_class.class_method_signature: ProjectionRepository.initCache(boolean multitenant)
focal_class.full_signature: private void initCache(boolean multitenant)
focal_class.identifier: initCache
focal_class.modifiers: private
focal_class.parameters: (boolean multitenant)
focal_class.return: void
focal_class.signature: void initCache(boolean multitenant)
focal_class.class_method_signature: ProjectionRepository.initInbox(Delivery delivery)
focal_class.full_signature: private void initInbox(Delivery delivery)
focal_class.identifier: initInbox
focal_class.modifiers: private
focal_class.parameters: (Delivery delivery)
focal_class.return: void
focal_class.signature: void initInbox(Delivery delivery)
focal_class.class_method_signature: ProjectionRepository.inbox()
focal_class.full_signature: private Inbox<I> inbox()
focal_class.identifier: inbox
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Inbox<I>
focal_class.signature: Inbox<I> inbox()
focal_class.class_method_signature: ProjectionRepository.setupEventRouting(EventRouting<I> routing)
focal_class.full_signature: @Override @OverridingMethodsMustInvokeSuper protected void setupEventRouting(EventRouting<I> routing)
focal_class.identifier: setupEventRouting
focal_class.modifiers: @Override @OverridingMethodsMustInvokeSuper protected
focal_class.parameters: (EventRouting<I> routing)
focal_class.return: void
focal_class.signature: void setupEventRouting(EventRouting<I> routing)
focal_class.class_method_signature: ProjectionRepository.ensureDispatchesEvents()
focal_class.full_signature: private void ensureDispatchesEvents()
focal_class.identifier: ensureDispatchesEvents
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void ensureDispatchesEvents()
focal_class.class_method_signature: ProjectionRepository.createStateRouting()
focal_class.full_signature: private StateUpdateRouting<I> createStateRouting()
focal_class.identifier: createStateRouting
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: StateUpdateRouting<I>
focal_class.signature: StateUpdateRouting<I> createStateRouting()
focal_class.class_method_signature: ProjectionRepository.validate(StateUpdateRouting<I> routing)
focal_class.full_signature: private void validate(StateUpdateRouting<I> routing)
focal_class.identifier: validate
focal_class.modifiers: private
focal_class.parameters: (StateUpdateRouting<I> routing)
focal_class.return: void
focal_class.signature: void validate(StateUpdateRouting<I> routing)
focal_class.class_method_signature: ProjectionRepository.setupStateRouting(StateUpdateRouting<I> routing)
focal_class.full_signature: @SuppressWarnings("NoopMethodInAbstractClass") // see Javadoc protected void setupStateRouting(StateUpdateRouting<I> routing)
focal_class.identifier: setupStateRouting
focal_class.modifiers: @SuppressWarnings("NoopMethodInAbstractClass") // see Javadoc protected
focal_class.parameters: (StateUpdateRouting<I> routing)
focal_class.return: void
focal_class.signature: void setupStateRouting(StateUpdateRouting<I> routing)
focal_class.class_method_signature: ProjectionRepository.nullToDefault(@Nullable Timestamp timestamp)
focal_class.full_signature: @VisibleForTesting static Timestamp nullToDefault(@Nullable Timestamp timestamp)
focal_class.identifier: nullToDefault
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (@Nullable Timestamp timestamp)
focal_class.return: Timestamp
focal_class.signature: Timestamp nullToDefault(@Nullable Timestamp timestamp)
focal_class.class_method_signature: ProjectionRepository.eventStore()
focal_class.full_signature: final EventStore eventStore()
focal_class.identifier: eventStore
focal_class.modifiers: final
focal_class.parameters: ()
focal_class.return: EventStore
focal_class.signature: EventStore eventStore()
focal_class.class_method_signature: ProjectionRepository.projectionClass()
focal_class.full_signature: private ProjectionClass<P> projectionClass()
focal_class.identifier: projectionClass
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: ProjectionClass<P>
focal_class.signature: ProjectionClass<P> projectionClass()
focal_class.class_method_signature: ProjectionRepository.toModelClass(Class<P> cls)
focal_class.full_signature: @Internal @Override protected final ProjectionClass<P> toModelClass(Class<P> cls)
focal_class.identifier: toModelClass
focal_class.modifiers: @Internal @Override protected final
focal_class.parameters: (Class<P> cls)
focal_class.return: ProjectionClass<P>
focal_class.signature: ProjectionClass<P> toModelClass(Class<P> cls)
focal_class.class_method_signature: ProjectionRepository.create(I id)
focal_class.full_signature: @OverridingMethodsMustInvokeSuper @Override public P create(I id)
focal_class.identifier: create
focal_class.modifiers: @OverridingMethodsMustInvokeSuper @Override public
focal_class.parameters: (I id)
focal_class.return: P
focal_class.signature: P create(I id)
focal_class.class_method_signature: ProjectionRepository.stand()
focal_class.full_signature: protected final Stand stand()
focal_class.identifier: stand
focal_class.modifiers: protected final
focal_class.parameters: ()
focal_class.return: Stand
focal_class.signature: Stand stand()
focal_class.class_method_signature: ProjectionRepository.recordStorage()
focal_class.full_signature: @Override protected final RecordStorage<I> recordStorage()
focal_class.identifier: recordStorage
focal_class.modifiers: @Override protected final
focal_class.parameters: ()
focal_class.return: RecordStorage<I>
focal_class.signature: RecordStorage<I> recordStorage()
focal_class.class_method_signature: ProjectionRepository.createStorage()
focal_class.full_signature: @Override protected final ProjectionStorage<I> createStorage()
focal_class.identifier: createStorage
focal_class.modifiers: @Override protected final
focal_class.parameters: ()
focal_class.return: ProjectionStorage<I>
focal_class.signature: ProjectionStorage<I> createStorage()
focal_class.class_method_signature: ProjectionRepository.findOrCreate(I id)
focal_class.full_signature: @Override protected final P findOrCreate(I id)
focal_class.identifier: findOrCreate
focal_class.modifiers: @Override protected final
focal_class.parameters: (I id)
focal_class.return: P
focal_class.signature: P findOrCreate(I id)
focal_class.class_method_signature: ProjectionRepository.doFindOrCreate(I id)
focal_class.full_signature: private P doFindOrCreate(I id)
focal_class.identifier: doFindOrCreate
focal_class.modifiers: private
focal_class.parameters: (I id)
focal_class.return: P
focal_class.signature: P doFindOrCreate(I id)
focal_class.class_method_signature: ProjectionRepository.store(P entity)
focal_class.full_signature: @Override public final void store(P entity)
focal_class.identifier: store
focal_class.modifiers: @Override public final
focal_class.parameters: (P entity)
focal_class.return: void
focal_class.signature: void store(P entity)
focal_class.class_method_signature: ProjectionRepository.doStore(P entity)
focal_class.full_signature: private void doStore(P entity)
focal_class.identifier: doStore
focal_class.modifiers: private
focal_class.parameters: (P entity)
focal_class.return: void
focal_class.signature: void doStore(P entity)
focal_class.class_method_signature: ProjectionRepository.messageClasses()
focal_class.full_signature: @Override public final ImmutableSet<EventClass> messageClasses()
focal_class.identifier: messageClasses
focal_class.modifiers: @Override public final
focal_class.parameters: ()
focal_class.return: ImmutableSet<EventClass>
focal_class.signature: ImmutableSet<EventClass> messageClasses()
focal_class.class_method_signature: ProjectionRepository.domesticEventClasses()
focal_class.full_signature: @Override public final ImmutableSet<EventClass> domesticEventClasses()
focal_class.identifier: domesticEventClasses
focal_class.modifiers: @Override public final
focal_class.parameters: ()
focal_class.return: ImmutableSet<EventClass>
focal_class.signature: ImmutableSet<EventClass> domesticEventClasses()
focal_class.class_method_signature: ProjectionRepository.externalEventClasses()
focal_class.full_signature: @Override public final ImmutableSet<EventClass> externalEventClasses()
focal_class.identifier: externalEventClasses
focal_class.modifiers: @Override public final
focal_class.parameters: ()
focal_class.return: ImmutableSet<EventClass>
focal_class.signature: ImmutableSet<EventClass> externalEventClasses()
focal_class.class_method_signature: ProjectionRepository.canDispatch(EventEnvelope event)
focal_class.full_signature: @OverridingMethodsMustInvokeSuper @Override public final boolean canDispatch(EventEnvelope event)
focal_class.identifier: canDispatch
focal_class.modifiers: @OverridingMethodsMustInvokeSuper @Override public final
focal_class.parameters: (EventEnvelope event)
focal_class.return: boolean
focal_class.signature: boolean canDispatch(EventEnvelope event)
focal_class.class_method_signature: ProjectionRepository.dispatchTo(I id, Event event)
focal_class.full_signature: @Override protected final void dispatchTo(I id, Event event)
focal_class.identifier: dispatchTo
focal_class.modifiers: @Override protected final
focal_class.parameters: (I id, Event event)
focal_class.return: void
focal_class.signature: void dispatchTo(I id, Event event)
focal_class.class_method_signature: ProjectionRepository.catchUp(Timestamp since, @Nullable Set<I> ids)
focal_class.full_signature: public CatchUpId catchUp(Timestamp since, @Nullable Set<I> ids)
focal_class.identifier: catchUp
focal_class.modifiers: public
focal_class.parameters: (Timestamp since, @Nullable Set<I> ids)
focal_class.return: CatchUpId
focal_class.signature: CatchUpId catchUp(Timestamp since, @Nullable Set<I> ids)
focal_class.class_method_signature: ProjectionRepository.checkCatchUpStartTime(Timestamp since)
focal_class.full_signature: private static void checkCatchUpStartTime(Timestamp since)
focal_class.identifier: checkCatchUpStartTime
focal_class.modifiers: private static
focal_class.parameters: (Timestamp since)
focal_class.return: void
focal_class.signature: void checkCatchUpStartTime(Timestamp since)
focal_class.class_method_signature: ProjectionRepository.checkCatchUpTargets(@Nullable Set<I> ids)
focal_class.full_signature: private void checkCatchUpTargets(@Nullable Set<I> ids)
focal_class.identifier: checkCatchUpTargets
focal_class.modifiers: private
focal_class.parameters: (@Nullable Set<I> ids)
focal_class.return: void
focal_class.signature: void checkCatchUpTargets(@Nullable Set<I> ids)
focal_class.class_method_signature: ProjectionRepository.catchUpAll(Timestamp since)
focal_class.full_signature: public CatchUpId catchUpAll(Timestamp since)
focal_class.identifier: catchUpAll
focal_class.modifiers: public
focal_class.parameters: (Timestamp since)
focal_class.return: CatchUpId
focal_class.signature: CatchUpId catchUpAll(Timestamp since)
focal_class.class_method_signature: ProjectionRepository.sendToCatchingUp(Event event, @Nullable Set<I> restrictToIds)
focal_class.full_signature: private Set<I> sendToCatchingUp(Event event, @Nullable Set<I> restrictToIds)
focal_class.identifier: sendToCatchingUp
focal_class.modifiers: private
focal_class.parameters: (Event event, @Nullable Set<I> restrictToIds)
focal_class.return: Set<I>
focal_class.signature: Set<I> sendToCatchingUp(Event event, @Nullable Set<I> restrictToIds)
focal_class.class_method_signature: ProjectionRepository.close()
focal_class.full_signature: @OverridingMethodsMustInvokeSuper @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @OverridingMethodsMustInvokeSuper @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.superclass: extends EventDispatchingRepository<I, P, S>
focal_method.body: @Override
      public final void store(P entity) {
          cache.store(entity);
      }
focal_method.class_method_signature: ProjectionRepository.store(P entity)
focal_method.full_signature: @Override public final void store(P entity)
focal_method.identifier: store
focal_method.invocations: store
focal_method.modifiers: @Override public final
focal_method.parameters: (P entity)
focal_method.return: void
focal_method.signature: void store(P entity)