Class EventEditor<T extends Event>

java.lang.Object
com.barden.library.metadata.MetadataEntity
com.barden.library.event.EventEditor<T>
All Implemented Interfaces:
EventExecutor

public final class EventEditor<T extends Event> extends MetadataEntity implements EventExecutor
Event editor class.
  • Constructor Details

    • EventEditor

      public EventEditor(@Nonnull Class<?>... events)
      Creates event editor object.
      Parameters:
      events - Events.
    • EventEditor

      public EventEditor(@Nonnull Collection<Class<?>> events)
      Creates event editor object.
      Parameters:
      events - Events.
    • EventEditor

      public EventEditor(@Nonnull Collection<Class<?>> events, @Nonnull EventOrder order)
      Creates event editor object.
      Parameters:
      events - Events.
      order - Event order.
    • EventEditor

      public EventEditor(@Nonnull Class<T> commonClass, @Nonnull Collection<Class<?>> events, @Nonnull EventOrder order)
      Creates event editor object.
      Parameters:
      commonClass - Common class. (BASE)
      events - Events.
      order - Event order.
  • Method Details

    • metadata

      @Nonnull public Metadata metadata(@Nonnull String name)
      Gets metadata by name.
      Parameters:
      name - Event name.
      Returns:
      Metadata by name.
    • getCommonClass

      @Nonnull public Class<T> getCommonClass()
      Gets common class.
      Returns:
      Common class.
    • getNames

      @Nonnull public Collection<String> getNames()
      Gets names.
      Specified by:
      getNames in interface EventExecutor
      Returns:
      Event names.
    • getOrder

      @Nonnull public EventOrder getOrder()
      Gets event order.
      Specified by:
      getOrder in interface EventExecutor
      Returns:
      Event order.
    • isRegistered

      public boolean isRegistered()
      Gets if it is registered or not.
      Returns:
      If it is registered or not.
    • isUnregistered

      public boolean isUnregistered()
      Gets if it is unregistered or not.
      Returns:
      If it is unregistered or not.
    • register

      public void register()
      Registers event editor.
    • unregister

      public void unregister()
      Unregisters event editor.
    • order

      @Nonnull public EventEditor<T> order(@Nonnull EventOrder order)
      Sets order.
      Parameters:
      order - Event order.
      Returns:
      Event editor.
    • filter

      @Nonnull public EventEditor<T> filter(@Nonnull Function<T,Boolean> function_filter)
      Adds new functional event filter to the list.
      Parameters:
      function_filter - Functional event filter.
      Returns:
      Builder.
    • limit

      @Nonnull public EventEditor<T> limit(int usageLimit)
      Sets usage limit.
      Parameters:
      usageLimit - Usage limit.
      Returns:
      Builder.
    • expire

      @Nonnull public EventEditor<T> expire(int expire, @Nonnull TimeUnit expireUnit)
      Sets expire duration and time unit.
      Parameters:
      expire - Expire duration.
      expireUnit - Expire time unit.
      Returns:
      Builder.
    • expire

      @Nonnull public EventEditor<T> expire(int expire, @Nonnull TimeUnit expireUnit, @Nonnull Consumer<EventEditor<T>> expireHandler)
      Sets expire duration and time unit.
      Parameters:
      expire - Expire duration.
      expireUnit - Expire time unit.
      expireHandler - Expire handler.
      Returns:
      Builder.
    • consume

      @Nonnull public EventEditor<T> consume(@Nonnull Consumer<T> consumer)
      Sets order.
      Parameters:
      consumer - Event executor consumer.
      Returns:
      Event editor.
    • onExecute

      public void onExecute(@Nonnull Event event)
      Be triggered when event executes.
      Specified by:
      onExecute in interface EventExecutor
      Parameters:
      event - Event.