test_class.declarator: mappingConfig
test_class.modifier: private static
test_class.original_string: private static MappingConfig mappingConfig;
test_class.type: MappingConfig
test_class.var_name: mappingConfig
test_class.declarator: system
test_class.modifier: private static
test_class.original_string: private static ActorSystem system;
test_class.type: ActorSystem
test_class.var_name: system
test_class.declarator: log
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private DiagnosticLoggingAdapter log;
test_class.type: DiagnosticLoggingAdapter
test_class.var_name: log
test_class.declarator: underTest
test_class.modifier: private
test_class.original_string: private DefaultMessageMapperFactory underTest;
test_class.type: DefaultMessageMapperFactory
test_class.var_name: underTest
test_class.file: services/connectivity/mapping/src/test/java/org/eclipse/ditto/services/connectivity/mapping/DefaultMessageMapperFactoryTest.java
test_class.identifier: DefaultMessageMapperFactoryTest
test_case.body: @Test
      public void loadMapperFromClass() {
          final MappingContext ctx = MappingContexts.mock(true);
          assertThat(underTest.mapperOf("test", ctx)).isPresent();
      }
test_case.class_method_signature: DefaultMessageMapperFactoryTest.loadMapperFromClass()
test_case.full_signature: @Test public void loadMapperFromClass()
test_case.identifier: loadMapperFromClass
test_case.invocations: mock isPresent assertThat mapperOf
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void loadMapperFromClass()
focal_class.declarator: connectionId
focal_class.modifier: private final
focal_class.original_string: private final ConnectionId connectionId;
focal_class.type: ConnectionId
focal_class.var_name: connectionId
focal_class.declarator: mappingConfig
focal_class.modifier: private final
focal_class.original_string: private final MappingConfig mappingConfig;
focal_class.type: MappingConfig
focal_class.var_name: mappingConfig
focal_class.declarator: actorSystem
focal_class.modifier: private final
focal_class.original_string: private final ExtendedActorSystem actorSystem;
focal_class.type: ExtendedActorSystem
focal_class.var_name: actorSystem
focal_class.declarator: messageMapperExtensions
focal_class.modifier: private final
focal_class.original_string: private final List<MessageMapperExtension> messageMapperExtensions;
focal_class.type: List<MessageMapperExtension>
focal_class.var_name: messageMapperExtensions
focal_class.declarator: messageMapperExtensionClasses =
              loadMessageMapperExtensionClasses()
focal_class.modifier: private static final
focal_class.original_string: private static final List<Class<? extends MessageMapperExtension>> messageMapperExtensionClasses =
              loadMessageMapperExtensionClasses();
focal_class.type: List<Class<? extends MessageMapperExtension>>
focal_class.var_name: messageMapperExtensionClasses
focal_class.declarator: registeredMappers = tryToLoadPayloadMappers()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<String, Class<?>> registeredMappers = tryToLoadPayloadMappers();
focal_class.type: Map<String, Class<?>>
focal_class.var_name: registeredMappers
focal_class.declarator: log
focal_class.modifier: private final
focal_class.original_string: private final LoggingAdapter log;
focal_class.type: LoggingAdapter
focal_class.var_name: log
focal_class.file: services/connectivity/mapping/src/main/java/org/eclipse/ditto/services/connectivity/mapping/DefaultMessageMapperFactory.java
focal_class.identifier: DefaultMessageMapperFactory
focal_class.interfaces: implements MessageMapperFactory
focal_class.class_method_signature: DefaultMessageMapperFactory.DefaultMessageMapperFactory(final ConnectionId connectionId,
              final MappingConfig mappingConfig,
              final ExtendedActorSystem actorSystem,
              final List<MessageMapperExtension> messageMapperExtensions,
              final LoggingAdapter log)
focal_class.full_signature: private  DefaultMessageMapperFactory(final ConnectionId connectionId,
              final MappingConfig mappingConfig,
              final ExtendedActorSystem actorSystem,
              final List<MessageMapperExtension> messageMapperExtensions,
              final LoggingAdapter log)
focal_class.identifier: DefaultMessageMapperFactory
focal_class.modifiers: private
focal_class.parameters: (final ConnectionId connectionId,
              final MappingConfig mappingConfig,
              final ExtendedActorSystem actorSystem,
              final List<MessageMapperExtension> messageMapperExtensions,
              final LoggingAdapter log)
focal_class.signature:  DefaultMessageMapperFactory(final ConnectionId connectionId,
              final MappingConfig mappingConfig,
              final ExtendedActorSystem actorSystem,
              final List<MessageMapperExtension> messageMapperExtensions,
              final LoggingAdapter log)
focal_class.class_method_signature: DefaultMessageMapperFactory.of(final ConnectionId connectionId,
              final ActorSystem actorSystem,
              final MappingConfig mappingConfig,
              final LoggingAdapter log)
focal_class.full_signature: public static DefaultMessageMapperFactory of(final ConnectionId connectionId,
              final ActorSystem actorSystem,
              final MappingConfig mappingConfig,
              final LoggingAdapter log)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (final ConnectionId connectionId,
              final ActorSystem actorSystem,
              final MappingConfig mappingConfig,
              final LoggingAdapter log)
focal_class.return: DefaultMessageMapperFactory
focal_class.signature: DefaultMessageMapperFactory of(final ConnectionId connectionId,
              final ActorSystem actorSystem,
              final MappingConfig mappingConfig,
              final LoggingAdapter log)
focal_class.class_method_signature: DefaultMessageMapperFactory.mapperOf(final String mapperId, final MappingContext mappingContext)
focal_class.full_signature: @Override public Optional<MessageMapper> mapperOf(final String mapperId, final MappingContext mappingContext)
focal_class.identifier: mapperOf
focal_class.modifiers: @Override public
focal_class.parameters: (final String mapperId, final MappingContext mappingContext)
focal_class.return: Optional<MessageMapper>
focal_class.signature: Optional<MessageMapper> mapperOf(final String mapperId, final MappingContext mappingContext)
focal_class.class_method_signature: DefaultMessageMapperFactory.mergeMappingOptions(final JsonObject defaultOptions,
              final JsonObject configuredOptions)
focal_class.full_signature: private MergedJsonObjectMap mergeMappingOptions(final JsonObject defaultOptions,
              final JsonObject configuredOptions)
focal_class.identifier: mergeMappingOptions
focal_class.modifiers: private
focal_class.parameters: (final JsonObject defaultOptions,
              final JsonObject configuredOptions)
focal_class.return: MergedJsonObjectMap
focal_class.signature: MergedJsonObjectMap mergeMappingOptions(final JsonObject defaultOptions,
              final JsonObject configuredOptions)
focal_class.class_method_signature: DefaultMessageMapperFactory.registryOf(final MappingContext defaultContext,
              final PayloadMappingDefinition payloadMappingDefinition)
focal_class.full_signature: @Override public MessageMapperRegistry registryOf(final MappingContext defaultContext,
              final PayloadMappingDefinition payloadMappingDefinition)
focal_class.identifier: registryOf
focal_class.modifiers: @Override public
focal_class.parameters: (final MappingContext defaultContext,
              final PayloadMappingDefinition payloadMappingDefinition)
focal_class.return: MessageMapperRegistry
focal_class.signature: MessageMapperRegistry registryOf(final MappingContext defaultContext,
              final PayloadMappingDefinition payloadMappingDefinition)
focal_class.class_method_signature: DefaultMessageMapperFactory.getEmptyMappingContextForAlias(final String alias)
focal_class.full_signature: private Map.Entry<String, MappingContext> getEmptyMappingContextForAlias(final String alias)
focal_class.identifier: getEmptyMappingContextForAlias
focal_class.modifiers: private
focal_class.parameters: (final String alias)
focal_class.return: Map.Entry<String, MappingContext>
focal_class.signature: Map.Entry<String, MappingContext> getEmptyMappingContextForAlias(final String alias)
focal_class.class_method_signature: DefaultMessageMapperFactory.instantiateMappers(final Stream<Map.Entry<String, MappingContext>> definitions)
focal_class.full_signature: private Map<String, MessageMapper> instantiateMappers(final Stream<Map.Entry<String, MappingContext>> definitions)
focal_class.identifier: instantiateMappers
focal_class.modifiers: private
focal_class.parameters: (final Stream<Map.Entry<String, MappingContext>> definitions)
focal_class.return: Map<String, MessageMapper>
focal_class.signature: Map<String, MessageMapper> instantiateMappers(final Stream<Map.Entry<String, MappingContext>> definitions)
focal_class.class_method_signature: DefaultMessageMapperFactory.tryToLoadPayloadMappers()
focal_class.full_signature: private static Map<String, Class<?>> tryToLoadPayloadMappers()
focal_class.identifier: tryToLoadPayloadMappers
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: Map<String, Class<?>>
focal_class.signature: Map<String, Class<?>> tryToLoadPayloadMappers()
focal_class.class_method_signature: DefaultMessageMapperFactory.tryToLoadMessageMappersExtensions(
              final ExtendedActorSystem actorSystem)
focal_class.full_signature: private static List<MessageMapperExtension> tryToLoadMessageMappersExtensions(
              final ExtendedActorSystem actorSystem)
focal_class.identifier: tryToLoadMessageMappersExtensions
focal_class.modifiers: private static
focal_class.parameters: (
              final ExtendedActorSystem actorSystem)
focal_class.return: List<MessageMapperExtension>
focal_class.signature: List<MessageMapperExtension> tryToLoadMessageMappersExtensions(
              final ExtendedActorSystem actorSystem)
focal_class.class_method_signature: DefaultMessageMapperFactory.loadMessageMapperExtensions(final DynamicAccess dynamicAccess)
focal_class.full_signature: private static List<MessageMapperExtension> loadMessageMapperExtensions(final DynamicAccess dynamicAccess)
focal_class.identifier: loadMessageMapperExtensions
focal_class.modifiers: private static
focal_class.parameters: (final DynamicAccess dynamicAccess)
focal_class.return: List<MessageMapperExtension>
focal_class.signature: List<MessageMapperExtension> loadMessageMapperExtensions(final DynamicAccess dynamicAccess)
focal_class.class_method_signature: DefaultMessageMapperFactory.loadMessageMapperExtensionClasses()
focal_class.full_signature: private static List<Class<? extends MessageMapperExtension>> loadMessageMapperExtensionClasses()
focal_class.identifier: loadMessageMapperExtensionClasses
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: List<Class<? extends MessageMapperExtension>>
focal_class.signature: List<Class<? extends MessageMapperExtension>> loadMessageMapperExtensionClasses()
focal_class.class_method_signature: DefaultMessageMapperFactory.createMessageMapperInstance(final String mappingEngine)
focal_class.full_signature:  Optional<MessageMapper> createMessageMapperInstance(final String mappingEngine)
focal_class.identifier: createMessageMapperInstance
focal_class.parameters: (final String mappingEngine)
focal_class.return: Optional<MessageMapper>
focal_class.signature: Optional<MessageMapper> createMessageMapperInstance(final String mappingEngine)
focal_class.class_method_signature: DefaultMessageMapperFactory.createAnyMessageMapper(final Class<?> clazz,
              final DynamicAccess dynamicAccess)
focal_class.full_signature: @Nullable private static MessageMapper createAnyMessageMapper(final Class<?> clazz,
              final DynamicAccess dynamicAccess)
focal_class.identifier: createAnyMessageMapper
focal_class.modifiers: @Nullable private static
focal_class.parameters: (final Class<?> clazz,
              final DynamicAccess dynamicAccess)
focal_class.return: MessageMapper
focal_class.signature: MessageMapper createAnyMessageMapper(final Class<?> clazz,
              final DynamicAccess dynamicAccess)
focal_class.class_method_signature: DefaultMessageMapperFactory.requiresNoMandatoryConfiguration()
focal_class.full_signature: private Predicate<? super Map.Entry<String, Class<?>>> requiresNoMandatoryConfiguration()
focal_class.identifier: requiresNoMandatoryConfiguration
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Predicate<? super Map.Entry<String, Class<?>>>
focal_class.signature: Predicate<? super Map.Entry<String, Class<?>>> requiresNoMandatoryConfiguration()
focal_class.class_method_signature: DefaultMessageMapperFactory.getPayloadMapperAnnotation(final Map.Entry<String, Class<?>> entry)
focal_class.full_signature: private static PayloadMapper getPayloadMapperAnnotation(final Map.Entry<String, Class<?>> entry)
focal_class.identifier: getPayloadMapperAnnotation
focal_class.modifiers: private static
focal_class.parameters: (final Map.Entry<String, Class<?>> entry)
focal_class.return: PayloadMapper
focal_class.signature: PayloadMapper getPayloadMapperAnnotation(final Map.Entry<String, Class<?>> entry)
focal_class.class_method_signature: DefaultMessageMapperFactory.configureInstance(final MessageMapper mapper,
              final MessageMapperConfiguration options)
focal_class.full_signature: private Optional<MessageMapper> configureInstance(final MessageMapper mapper,
              final MessageMapperConfiguration options)
focal_class.identifier: configureInstance
focal_class.modifiers: private
focal_class.parameters: (final MessageMapper mapper,
              final MessageMapperConfiguration options)
focal_class.return: Optional<MessageMapper>
focal_class.signature: Optional<MessageMapper> configureInstance(final MessageMapper mapper,
              final MessageMapperConfiguration options)
focal_class.class_method_signature: DefaultMessageMapperFactory.equals(final Object o)
focal_class.full_signature: @Override public boolean equals(final Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (final Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(final Object o)
focal_class.class_method_signature: DefaultMessageMapperFactory.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_method.body: @Override
      public Optional<MessageMapper> mapperOf(final String mapperId, final MappingContext mappingContext) {
          final Optional<MessageMapper> mapper = createMessageMapperInstance(mappingContext.getMappingEngine());
          final Map<String, String> configuredIncomingConditions = mappingContext.getIncomingConditions();
          final Map<String, String> configuredOutgoingConditions = mappingContext.getOutgoingConditions();
          final JsonObject defaultOptions =
                  mapper.map(MessageMapper::getDefaultOptions).orElse(JsonObject.empty());
          final MergedJsonObjectMap configuredAndDefaultOptions =
                  mergeMappingOptions(defaultOptions, mappingContext.getOptionsAsJson());
          final MessageMapperConfiguration options =
                  DefaultMessageMapperConfiguration.of(mapperId, configuredAndDefaultOptions,
                          configuredIncomingConditions, configuredOutgoingConditions);
          return mapper.flatMap(m -> configureInstance(m, options));
      }
focal_method.class_method_signature: DefaultMessageMapperFactory.mapperOf(final String mapperId, final MappingContext mappingContext)
focal_method.full_signature: @Override public Optional<MessageMapper> mapperOf(final String mapperId, final MappingContext mappingContext)
focal_method.identifier: mapperOf
focal_method.invocations: createMessageMapperInstance getMappingEngine getIncomingConditions getOutgoingConditions orElse map empty mergeMappingOptions getOptionsAsJson of flatMap configureInstance
focal_method.modifiers: @Override public
focal_method.parameters: (final String mapperId, final MappingContext mappingContext)
focal_method.return: Optional<MessageMapper>
focal_method.signature: Optional<MessageMapper> mapperOf(final String mapperId, final MappingContext mappingContext)