test_class.declarator: mapping = new TestColumnMapping()
test_class.modifier: private final
test_class.original_string: private final ColumnMapping<String> mapping = new TestColumnMapping();
test_class.type: ColumnMapping<String>
test_class.var_name: mapping
test_class.file: server/src/test/java/io/spine/server/entity/storage/AbstractColumnMappingTest.java
test_class.identifier: AbstractColumnMappingTest
test_case.body: @Test
      @DisplayName("obtain a column type mapping for the given proto type")
      void obtainForType() {
          ColumnTypeMapping<?, ? extends String> rule = mapping.of(String.class);
          String result = rule.applyTo("some-string");
          assertThat(result).isEqualTo(CONVERTED_STRING);
      }
test_case.class_method_signature: AbstractColumnMappingTest.obtainForType()
test_case.full_signature: @Test @DisplayName("obtain a column type mapping for the given proto type") void obtainForType()
test_case.identifier: obtainForType
test_case.invocations: of applyTo isEqualTo assertThat
test_case.modifiers: @Test @DisplayName("obtain a column type mapping for the given proto type")
test_case.parameters: ()
test_case.return: void
test_case.signature: void obtainForType()
focal_class.declarator: standardTypesMapping
              = standardTypesMapping()
focal_class.modifier: private final
focal_class.original_string: private final
      ImmutableMap<Class<?>, Supplier<ColumnTypeMapping<?, ? extends R>>> standardTypesMapping
              = standardTypesMapping();
focal_class.type: ImmutableMap<Class<?>, Supplier<ColumnTypeMapping<?, ? extends R>>>
focal_class.var_name: standardTypesMapping
focal_class.declarator: customMapping
focal_class.modifier: private @MonotonicNonNull
focal_class.original_string: private @MonotonicNonNull
      ImmutableMap<Class<?>, ColumnTypeMapping<?, ? extends R>> customMapping;
focal_class.type: ImmutableMap<Class<?>, ColumnTypeMapping<?, ? extends R>>
focal_class.var_name: customMapping
focal_class.file: server/src/main/java/io/spine/server/entity/storage/AbstractColumnMapping.java
focal_class.identifier: AbstractColumnMapping
focal_class.interfaces: implements ColumnMapping<R>
focal_class.class_method_signature: AbstractColumnMapping.of(Class<T> type)
focal_class.full_signature: @SuppressWarnings("unchecked") // Ensured by mapping declaration. @Override public ColumnTypeMapping<T, ? extends R> of(Class<T> type)
focal_class.identifier: of
focal_class.modifiers: @SuppressWarnings("unchecked") // Ensured by mapping declaration. @Override public
focal_class.parameters: (Class<T> type)
focal_class.return: ColumnTypeMapping<T, ? extends R>
focal_class.signature: ColumnTypeMapping<T, ? extends R> of(Class<T> type)
focal_class.class_method_signature: AbstractColumnMapping.setupCustomMapping(ImmutableMap.Builder<Class<?>, ColumnTypeMapping<?, ? extends R>> builder)
focal_class.full_signature: @SuppressWarnings("NoopMethodInAbstractClass") // Do not enforce implementation in descendants. protected void setupCustomMapping(ImmutableMap.Builder<Class<?>, ColumnTypeMapping<?, ? extends R>> builder)
focal_class.identifier: setupCustomMapping
focal_class.modifiers: @SuppressWarnings("NoopMethodInAbstractClass") // Do not enforce implementation in descendants. protected
focal_class.parameters: (ImmutableMap.Builder<Class<?>, ColumnTypeMapping<?, ? extends R>> builder)
focal_class.return: void
focal_class.signature: void setupCustomMapping(ImmutableMap.Builder<Class<?>, ColumnTypeMapping<?, ? extends R>> builder)
focal_class.class_method_signature: AbstractColumnMapping.ofString()
focal_class.full_signature: protected abstract ColumnTypeMapping<String, ? extends R> ofString()
focal_class.identifier: ofString
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<String, ? extends R>
focal_class.signature: ColumnTypeMapping<String, ? extends R> ofString()
focal_class.class_method_signature: AbstractColumnMapping.ofInteger()
focal_class.full_signature: protected abstract ColumnTypeMapping<Integer, ? extends R> ofInteger()
focal_class.identifier: ofInteger
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Integer, ? extends R>
focal_class.signature: ColumnTypeMapping<Integer, ? extends R> ofInteger()
focal_class.class_method_signature: AbstractColumnMapping.ofLong()
focal_class.full_signature: protected abstract ColumnTypeMapping<Long, ? extends R> ofLong()
focal_class.identifier: ofLong
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Long, ? extends R>
focal_class.signature: ColumnTypeMapping<Long, ? extends R> ofLong()
focal_class.class_method_signature: AbstractColumnMapping.ofFloat()
focal_class.full_signature: protected abstract ColumnTypeMapping<Float, ? extends R> ofFloat()
focal_class.identifier: ofFloat
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Float, ? extends R>
focal_class.signature: ColumnTypeMapping<Float, ? extends R> ofFloat()
focal_class.class_method_signature: AbstractColumnMapping.ofDouble()
focal_class.full_signature: protected abstract ColumnTypeMapping<Double, ? extends R> ofDouble()
focal_class.identifier: ofDouble
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Double, ? extends R>
focal_class.signature: ColumnTypeMapping<Double, ? extends R> ofDouble()
focal_class.class_method_signature: AbstractColumnMapping.ofBoolean()
focal_class.full_signature: protected abstract ColumnTypeMapping<Boolean, ? extends R> ofBoolean()
focal_class.identifier: ofBoolean
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Boolean, ? extends R>
focal_class.signature: ColumnTypeMapping<Boolean, ? extends R> ofBoolean()
focal_class.class_method_signature: AbstractColumnMapping.ofByteString()
focal_class.full_signature: protected abstract ColumnTypeMapping<ByteString, ? extends R> ofByteString()
focal_class.identifier: ofByteString
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<ByteString, ? extends R>
focal_class.signature: ColumnTypeMapping<ByteString, ? extends R> ofByteString()
focal_class.class_method_signature: AbstractColumnMapping.ofEnum()
focal_class.full_signature: protected abstract ColumnTypeMapping<Enum<?>, ? extends R> ofEnum()
focal_class.identifier: ofEnum
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Enum<?>, ? extends R>
focal_class.signature: ColumnTypeMapping<Enum<?>, ? extends R> ofEnum()
focal_class.class_method_signature: AbstractColumnMapping.ofMessage()
focal_class.full_signature: protected abstract ColumnTypeMapping<Message, ? extends R> ofMessage()
focal_class.identifier: ofMessage
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: ColumnTypeMapping<Message, ? extends R>
focal_class.signature: ColumnTypeMapping<Message, ? extends R> ofMessage()
focal_class.class_method_signature: AbstractColumnMapping.unsupportedType(Class<?> aClass)
focal_class.full_signature: protected IllegalArgumentException unsupportedType(Class<?> aClass)
focal_class.identifier: unsupportedType
focal_class.modifiers: protected
focal_class.parameters: (Class<?> aClass)
focal_class.return: IllegalArgumentException
focal_class.signature: IllegalArgumentException unsupportedType(Class<?> aClass)
focal_class.class_method_signature: AbstractColumnMapping.standardTypesMapping()
focal_class.full_signature: private ImmutableMap<Class<?>, Supplier<ColumnTypeMapping<?, ? extends R>>> standardTypesMapping()
focal_class.identifier: standardTypesMapping
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: ImmutableMap<Class<?>, Supplier<ColumnTypeMapping<?, ? extends R>>>
focal_class.signature: ImmutableMap<Class<?>, Supplier<ColumnTypeMapping<?, ? extends R>>> standardTypesMapping()
focal_class.class_method_signature: AbstractColumnMapping.customMapping()
focal_class.full_signature: private ImmutableMap<Class<?>, ColumnTypeMapping<?, ? extends R>> customMapping()
focal_class.identifier: customMapping
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: ImmutableMap<Class<?>, ColumnTypeMapping<?, ? extends R>>
focal_class.signature: ImmutableMap<Class<?>, ColumnTypeMapping<?, ? extends R>> customMapping()
focal_class.class_method_signature: AbstractColumnMapping.customMappingFor(Class<?> columnType)
focal_class.full_signature: private Optional<ColumnTypeMapping<?, ? extends R>> customMappingFor(Class<?> columnType)
focal_class.identifier: customMappingFor
focal_class.modifiers: private
focal_class.parameters: (Class<?> columnType)
focal_class.return: Optional<ColumnTypeMapping<?, ? extends R>>
focal_class.signature: Optional<ColumnTypeMapping<?, ? extends R>> customMappingFor(Class<?> columnType)
focal_class.class_method_signature: AbstractColumnMapping.standardMappingFor(Class<?> columnType)
focal_class.full_signature: private Optional<ColumnTypeMapping<?, ? extends R>> standardMappingFor(Class<?> columnType)
focal_class.identifier: standardMappingFor
focal_class.modifiers: private
focal_class.parameters: (Class<?> columnType)
focal_class.return: Optional<ColumnTypeMapping<?, ? extends R>>
focal_class.signature: Optional<ColumnTypeMapping<?, ? extends R>> standardMappingFor(Class<?> columnType)
focal_method.body: @SuppressWarnings("unchecked") // Ensured by mapping declaration.
      @Override
      public <T> ColumnTypeMapping<T, ? extends R> of(Class<T> type) {
          checkNotNull(type);
          ColumnTypeMapping<?, ? extends R> result;
          Optional<ColumnTypeMapping<?, ? extends R>> rule = customMappingFor(type);
          if (rule.isPresent()) {
              result = rule.get();
          } else {
              rule = standardMappingFor(type);
              result = rule.orElseThrow(() -> unsupportedType(type));
          }
          return (ColumnTypeMapping<T, ? extends R>) result;
      }
focal_method.class_method_signature: AbstractColumnMapping.of(Class<T> type)
focal_method.full_signature: @SuppressWarnings("unchecked") // Ensured by mapping declaration. @Override public ColumnTypeMapping<T, ? extends R> of(Class<T> type)
focal_method.identifier: of
focal_method.invocations: checkNotNull customMappingFor isPresent get standardMappingFor orElseThrow unsupportedType
focal_method.modifiers: @SuppressWarnings("unchecked") // Ensured by mapping declaration. @Override public
focal_method.parameters: (Class<T> type)
focal_method.return: ColumnTypeMapping<T, ? extends R>
focal_method.signature: ColumnTypeMapping<T, ? extends R> of(Class<T> type)