Class MessageMapper

java.lang.Object
ru.yojo.codegen.mapper.AbstractMapper
ru.yojo.codegen.mapper.MessageMapper

public class MessageMapper extends AbstractMapper
Maps AsyncAPI message definitions (components.messages.*) to Message objects.

Handles:

  • Direct properties-based messages
  • $ref to schemas (with optional inline properties merge)
  • Polymorphic payloads (oneOf/allOf/anyOf)
  • Inheritance (extends, implements)
  • Lombok configuration per-message
  • Custom package via pathForGenerateMessage
  • Leaf scalars/arrays/enums (treated as wrapper or delegated to SchemaMapper)
  • Constructor Details

    • MessageMapper

      public MessageMapper(SchemaMapper schemaMapper)
      Constructs a message mapper with the given schema mapper.
      Parameters:
      schemaMapper - delegate for schema mapping
  • Method Details

    • mapMessagesToObjects

      public List<Message> mapMessagesToObjects(ProcessContext processContext)
      Transforms all message definitions in the context into Message instances.

      For each message:

      • Resolves $ref and polymorphism
      • Collects Lombok config
      • Handles extends/implements
      • Fills fields via getFillParameters(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, ru.yojo.codegen.context.ProcessContext, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>, ru.yojo.codegen.domain.lombok.LombokProperties)
      Also cleans up referenced schemas marked for removal.
      Parameters:
      processContext - current generation context
      Returns:
      list of fully prepared Message instances