Class EmailChannelFactory

java.lang.Object
com.tnsai.channels.email.EmailChannelFactory
All Implemented Interfaces:
ChannelAdapterFactory

public final class EmailChannelFactory extends Object implements ChannelAdapterFactory
SPI factory for EmailChannel.

If config is an EmailChannelConfig instance, it's passed straight through. Anything else (including null) yields an environment-bootstrapped channel (see EmailChannelConfig.fromEnvironment()).

isAvailable() probes Session on the classpath — the framework's Jakarta Mail dep is optional, so callers without it on their classpath get a clean negative answer instead of a NoClassDefFoundError at start time.

  • Constructor Details

    • EmailChannelFactory

      public EmailChannelFactory()
  • Method Details

    • getType

      public String getType()
      Description copied from interface: ChannelAdapterFactory
      Unique type identifier for this channel (e.g. "telegram", "discord", "slack").
      Specified by:
      getType in interface ChannelAdapterFactory
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: ChannelAdapterFactory
      Human-readable display name for UI and logging.
      Specified by:
      getDisplayName in interface ChannelAdapterFactory
    • create

      public ChannelAdapter create(Object config)
      Description copied from interface: ChannelAdapterFactory
      Creates a new adapter instance with the given configuration.
      Specified by:
      create in interface ChannelAdapterFactory
      Parameters:
      config - platform-specific configuration (e.g. bot token, webhook URL)
      Returns:
      a configured but not yet started adapter
    • isAvailable

      public boolean isAvailable()
      Description copied from interface: ChannelAdapterFactory
      Whether the required platform SDK classes are on the classpath.

      This allows consumers to discover which adapters are actually usable at runtime, since platform SDKs are optional dependencies.

      Specified by:
      isAvailable in interface ChannelAdapterFactory
      Returns:
      true if all required dependencies are available