test_class.declarator: builder
test_class.modifier: private
test_class.original_string: private EventEnricher.Builder builder;
test_class.type: EventEnricher.Builder
test_class.var_name: builder
test_class.file: server/src/test/java/io/spine/server/enrich/EnricherBuilderTest.java
test_class.identifier: EnricherBuilderTest
test_case.body: @Test
      @DisplayName("allow multiple enrichment classes per source class")
      void allowMultipleEnrichments() {
          builder.add(EbtOrderCreated.class, StringValue.class,
                      (e, c) -> StringValue.getDefaultInstance())
                 .add(EbtOrderCreated.class, BoolValue.class,
                      (e, c) -> BoolValue.of(true));
          EventEnricher enricher = builder.build();
          assertThat(enricher).isNotNull();
      }
test_case.class_method_signature: EnricherBuilderTest.allowMultipleEnrichments()
test_case.full_signature: @Test @DisplayName("allow multiple enrichment classes per source class") void allowMultipleEnrichments()
test_case.identifier: allowMultipleEnrichments
test_case.invocations: add add getDefaultInstance of build isNotNull assertThat
test_case.modifiers: @Test @DisplayName("allow multiple enrichment classes per source class")
test_case.parameters: ()
test_case.return: void
test_case.signature: void allowMultipleEnrichments()
focal_class.declarator: SUGGEST_REMOVAL = " Please call `remove(Class, Class)` first."
focal_class.modifier: private static final
focal_class.original_string: private static final String SUGGEST_REMOVAL = " Please call `remove(Class, Class)` first.";
focal_class.type: String
focal_class.var_name: SUGGEST_REMOVAL
focal_class.declarator: functions = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<Key, EnrichmentFn<? extends M, C, ?>> functions = new HashMap<>();
focal_class.type: Map<Key, EnrichmentFn<? extends M, C, ?>>
focal_class.var_name: functions
focal_class.file: server/src/main/java/io/spine/server/enrich/EnricherBuilder.java
focal_class.identifier: EnricherBuilder
focal_class.class_method_signature: EnricherBuilder.EnricherBuilder()
focal_class.full_signature: protected  EnricherBuilder()
focal_class.identifier: EnricherBuilder
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.signature:  EnricherBuilder()
focal_class.class_method_signature: EnricherBuilder.doAdd(Class<S> messageClassOrInterface,
              Class<T> enrichmentClass,
              EnrichmentFn<S, C, T> func)
focal_class.full_signature: protected final B doAdd(Class<S> messageClassOrInterface,
              Class<T> enrichmentClass,
              EnrichmentFn<S, C, T> func)
focal_class.identifier: doAdd
focal_class.modifiers: protected final
focal_class.parameters: (Class<S> messageClassOrInterface,
              Class<T> enrichmentClass,
              EnrichmentFn<S, C, T> func)
focal_class.return: B
focal_class.signature: B doAdd(Class<S> messageClassOrInterface,
              Class<T> enrichmentClass,
              EnrichmentFn<S, C, T> func)
focal_class.class_method_signature: EnricherBuilder.self()
focal_class.full_signature: @SuppressWarnings("unchecked") private B self()
focal_class.identifier: self
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: ()
focal_class.return: B
focal_class.signature: B self()
focal_class.class_method_signature: EnricherBuilder.checkDirectDuplication(Key key)
focal_class.full_signature: private void checkDirectDuplication(Key key)
focal_class.identifier: checkDirectDuplication
focal_class.modifiers: private
focal_class.parameters: (Key key)
focal_class.return: void
focal_class.signature: void checkDirectDuplication(Key key)
focal_class.class_method_signature: EnricherBuilder.checkInterfaceDuplication(Key key)
focal_class.full_signature: private void checkInterfaceDuplication(Key key)
focal_class.identifier: checkInterfaceDuplication
focal_class.modifiers: private
focal_class.parameters: (Key key)
focal_class.return: void
focal_class.signature: void checkInterfaceDuplication(Key key)
focal_class.class_method_signature: EnricherBuilder.checkImplDuplication(Key key)
focal_class.full_signature: private void checkImplDuplication(Key key)
focal_class.identifier: checkImplDuplication
focal_class.modifiers: private
focal_class.parameters: (Key key)
focal_class.return: void
focal_class.signature: void checkImplDuplication(Key key)
focal_class.class_method_signature: EnricherBuilder.remove(Class<M> eventClass, Class<T> enrichmentClass)
focal_class.full_signature: public B remove(Class<M> eventClass, Class<T> enrichmentClass)
focal_class.identifier: remove
focal_class.modifiers: public
focal_class.parameters: (Class<M> eventClass, Class<T> enrichmentClass)
focal_class.return: B
focal_class.signature: B remove(Class<M> eventClass, Class<T> enrichmentClass)
focal_class.class_method_signature: EnricherBuilder.build()
focal_class.full_signature: public abstract Enricher build()
focal_class.identifier: build
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: Enricher
focal_class.signature: Enricher build()
focal_class.class_method_signature: EnricherBuilder.functions()
focal_class.full_signature:  ImmutableMap<Key, EnrichmentFn<? extends M, C, ?>> functions()
focal_class.identifier: functions
focal_class.parameters: ()
focal_class.return: ImmutableMap<Key, EnrichmentFn<? extends M, C, ?>>
focal_class.signature: ImmutableMap<Key, EnrichmentFn<? extends M, C, ?>> functions()
focal_method.body: public abstract Enricher build();
focal_method.class_method_signature: EnricherBuilder.build()
focal_method.full_signature: public abstract Enricher build()
focal_method.identifier: build
focal_method.modifiers: public abstract
focal_method.parameters: ()
focal_method.return: Enricher
focal_method.signature: Enricher build()