package com.airlock.iam.common.infrastructure.event;

import com.airlock.iam.base.api.domain.model.event.DomainEvent;
import com.airlock.iam.base.api.domain.model.event.DomainEventSubscriber;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Collection;
import java.util.Set;

public final class ScannedEventSubscribers {
   private final Set<DomainEventSubscriber<? extends DomainEvent>> subscribers;

   private ScannedEventSubscribers(Collection<DomainEventSubscriber<? extends DomainEvent>> subscribers) {
      this.subscribers = Set.copyOf(subscribers);
   }

   public static ScannedEventSubscribers scannedEventSubscribers(Collection<DomainEventSubscriber<? extends DomainEvent>> subscribers) {
      return new ScannedEventSubscribers(subscribers);
   }

   @SuppressFBWarnings(justification = "generated code")
   public Set<DomainEventSubscriber<? extends DomainEvent>> subscribers() {
      return this.subscribers;
   }
}
