test_class.file: server/src/test/java/io/spine/server/storage/memory/InMemoryRecordStorageTest.java
test_class.identifier: InMemoryRecordStorageTest
test_class.superclass: extends RecordStorageTest<InMemoryRecordStorage<ProjectId>>
test_case.body: @Test
      @DisplayName("return storage spec")
      void returnStorageSpec() {
          StorageSpec spec = storage().spec();
          assertEquals(ProjectId.class, spec.idClass());
      }
test_case.class_method_signature: InMemoryRecordStorageTest.returnStorageSpec()
test_case.full_signature: @Test @DisplayName("return storage spec") void returnStorageSpec()
test_case.identifier: returnStorageSpec
test_case.invocations: spec storage assertEquals idClass
test_case.modifiers: @Test @DisplayName("return storage spec")
test_case.parameters: ()
test_case.return: void
test_case.signature: void returnStorageSpec()
focal_class.declarator: spec
focal_class.modifier: private final
focal_class.original_string: private final StorageSpec<I> spec;
focal_class.type: StorageSpec<I>
focal_class.var_name: spec
focal_class.declarator: multitenantStorage
focal_class.modifier: private final
focal_class.original_string: private final MultitenantStorage<TenantRecords<I>> multitenantStorage;
focal_class.type: MultitenantStorage<TenantRecords<I>>
focal_class.var_name: multitenantStorage
focal_class.file: server/src/main/java/io/spine/server/storage/memory/InMemoryRecordStorage.java
focal_class.identifier: InMemoryRecordStorage
focal_class.class_method_signature: InMemoryRecordStorage.InMemoryRecordStorage(StorageSpec<I> spec,
                            Class<? extends Entity<?, ?>> entityClass,
                            boolean multitenant)
focal_class.full_signature:   InMemoryRecordStorage(StorageSpec<I> spec,
                            Class<? extends Entity<?, ?>> entityClass,
                            boolean multitenant)
focal_class.identifier: InMemoryRecordStorage
focal_class.parameters: (StorageSpec<I> spec,
                            Class<? extends Entity<?, ?>> entityClass,
                            boolean multitenant)
focal_class.signature:  InMemoryRecordStorage(StorageSpec<I> spec,
                            Class<? extends Entity<?, ?>> entityClass,
                            boolean multitenant)
focal_class.class_method_signature: InMemoryRecordStorage.spec()
focal_class.full_signature:  StorageSpec<I> spec()
focal_class.identifier: spec
focal_class.parameters: ()
focal_class.return: StorageSpec<I>
focal_class.signature: StorageSpec<I> spec()
focal_class.class_method_signature: InMemoryRecordStorage.index()
focal_class.full_signature: @Override public Iterator<I> index()
focal_class.identifier: index
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<I>
focal_class.signature: Iterator<I> index()
focal_class.class_method_signature: InMemoryRecordStorage.delete(I id)
focal_class.full_signature: @Override public boolean delete(I id)
focal_class.identifier: delete
focal_class.modifiers: @Override public
focal_class.parameters: (I id)
focal_class.return: boolean
focal_class.signature: boolean delete(I id)
focal_class.class_method_signature: InMemoryRecordStorage.readMultipleRecords(Iterable<I> givenIds,
                                                                     FieldMask fieldMask)
focal_class.full_signature: @Override protected Iterator<@Nullable EntityRecord> readMultipleRecords(Iterable<I> givenIds,
                                                                     FieldMask fieldMask)
focal_class.identifier: readMultipleRecords
focal_class.modifiers: @Override protected
focal_class.parameters: (Iterable<I> givenIds,
                                                                     FieldMask fieldMask)
focal_class.return: Iterator<@Nullable EntityRecord>
focal_class.signature: Iterator<@Nullable EntityRecord> readMultipleRecords(Iterable<I> givenIds,
                                                                     FieldMask fieldMask)
focal_class.class_method_signature: InMemoryRecordStorage.readAllRecords(ResponseFormat format)
focal_class.full_signature: @Override protected Iterator<EntityRecord> readAllRecords(ResponseFormat format)
focal_class.identifier: readAllRecords
focal_class.modifiers: @Override protected
focal_class.parameters: (ResponseFormat format)
focal_class.return: Iterator<EntityRecord>
focal_class.signature: Iterator<EntityRecord> readAllRecords(ResponseFormat format)
focal_class.class_method_signature: InMemoryRecordStorage.readAllRecords(EntityQuery<I> query, ResponseFormat format)
focal_class.full_signature: @Override protected Iterator<EntityRecord> readAllRecords(EntityQuery<I> query, ResponseFormat format)
focal_class.identifier: readAllRecords
focal_class.modifiers: @Override protected
focal_class.parameters: (EntityQuery<I> query, ResponseFormat format)
focal_class.return: Iterator<EntityRecord>
focal_class.signature: Iterator<EntityRecord> readAllRecords(EntityQuery<I> query, ResponseFormat format)
focal_class.class_method_signature: InMemoryRecordStorage.toCompleteQuery(EntityQuery<I> query)
focal_class.full_signature: private EntityQuery<I> toCompleteQuery(EntityQuery<I> query)
focal_class.identifier: toCompleteQuery
focal_class.modifiers: private
focal_class.parameters: (EntityQuery<I> query)
focal_class.return: EntityQuery<I>
focal_class.signature: EntityQuery<I> toCompleteQuery(EntityQuery<I> query)
focal_class.class_method_signature: InMemoryRecordStorage.records()
focal_class.full_signature: private TenantRecords<I> records()
focal_class.identifier: records
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: TenantRecords<I>
focal_class.signature: TenantRecords<I> records()
focal_class.class_method_signature: InMemoryRecordStorage.readRecord(I id)
focal_class.full_signature: @Override protected Optional<EntityRecord> readRecord(I id)
focal_class.identifier: readRecord
focal_class.modifiers: @Override protected
focal_class.parameters: (I id)
focal_class.return: Optional<EntityRecord>
focal_class.signature: Optional<EntityRecord> readRecord(I id)
focal_class.class_method_signature: InMemoryRecordStorage.writeRecord(I id, EntityRecordWithColumns record)
focal_class.full_signature: @Override protected void writeRecord(I id, EntityRecordWithColumns record)
focal_class.identifier: writeRecord
focal_class.modifiers: @Override protected
focal_class.parameters: (I id, EntityRecordWithColumns record)
focal_class.return: void
focal_class.signature: void writeRecord(I id, EntityRecordWithColumns record)
focal_class.class_method_signature: InMemoryRecordStorage.writeRecords(Map<I, EntityRecordWithColumns> records)
focal_class.full_signature: @Override protected void writeRecords(Map<I, EntityRecordWithColumns> records)
focal_class.identifier: writeRecords
focal_class.modifiers: @Override protected
focal_class.parameters: (Map<I, EntityRecordWithColumns> records)
focal_class.return: void
focal_class.signature: void writeRecords(Map<I, EntityRecordWithColumns> records)
focal_class.superclass: extends RecordStorage<I>
focal_method.body: StorageSpec<I> spec() {
          return spec;
      }
focal_method.class_method_signature: InMemoryRecordStorage.spec()
focal_method.full_signature:  StorageSpec<I> spec()
focal_method.identifier: spec
focal_method.parameters: ()
focal_method.return: StorageSpec<I>
focal_method.signature: StorageSpec<I> spec()