Class ImmutableCooldownConfiguration.Builder<C>
java.lang.Object
org.incendo.cloud.processors.cooldown.ImmutableCooldownConfiguration.Builder<C>
- All Implemented Interfaces:
ImmutableCooldownConfiguration.BuildFinal<C>,ImmutableCooldownConfiguration.RepositoryBuildStage<C>
- Enclosing class:
- ImmutableCooldownConfiguration<C>
public static final class ImmutableCooldownConfiguration.Builder<C>
extends Object
implements ImmutableCooldownConfiguration.RepositoryBuildStage<C>, ImmutableCooldownConfiguration.BuildFinal<C>
Builds instances of type
ImmutableCooldownConfiguration.
Initialize attributes and then invoke the build() method to create an
immutable instance.
Builder is not thread-safe and generally should not be stored in a field or collection,
but instead used immediately to create instances.
-
Method Summary
Modifier and TypeMethodDescriptionaddActiveCooldownListener(CooldownActiveListener<C> element) Adds one element toactiveCooldownListenerslist.addActiveCooldownListeners(CooldownActiveListener<C>... elements) Adds elements toactiveCooldownListenerslist.addAllActiveCooldownListeners(Iterable<? extends CooldownActiveListener<C>> elements) Adds elements toactiveCooldownListenerslist.addAllCreationListeners(Iterable<? extends CooldownCreationListener<C>> elements) Adds elements tocreationListenerslist.addCreationListener(CooldownCreationListener<C> element) Adds one element tocreationListenerslist.addCreationListeners(CooldownCreationListener<C>... elements) Adds elements tocreationListenerslist.build()Builds a newImmutableCooldownConfiguration.bypassCooldown(@NonNull Predicate<CommandContext<C>> bypassCooldown) Initializes the value for thebypassCooldownattribute.Initializes the value for theclockattribute.fallbackGroup(@NonNull Function<Command<C>, CooldownGroup> fallbackGroup) Initializes the value for thefallbackGroupattribute.profileFactory(@NonNull CooldownProfileFactory profileFactory) Initializes the value for theprofileFactoryattribute.repository(@NonNull CooldownRepository<C> repository) Initializes the value for therepositoryattribute.
-
Method Details
-
repository
public final ImmutableCooldownConfiguration.Builder<C> repository(@NonNull CooldownRepository<C> repository) Initializes the value for therepositoryattribute.- Specified by:
repositoryin interfaceImmutableCooldownConfiguration.RepositoryBuildStage<C>- Parameters:
repository- The value for repository- Returns:
thisbuilder for use in a chained invocation
-
addActiveCooldownListener
public final ImmutableCooldownConfiguration.Builder<C> addActiveCooldownListener(CooldownActiveListener<C> element) Adds one element toactiveCooldownListenerslist.- Specified by:
addActiveCooldownListenerin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
element- A activeCooldownListeners element- Returns:
thisbuilder for use in a chained invocation
-
addActiveCooldownListeners
@SafeVarargs public final ImmutableCooldownConfiguration.Builder<C> addActiveCooldownListeners(CooldownActiveListener<C>... elements) Adds elements toactiveCooldownListenerslist.- Specified by:
addActiveCooldownListenersin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
elements- An array of activeCooldownListeners elements- Returns:
thisbuilder for use in a chained invocation
-
addAllActiveCooldownListeners
public final ImmutableCooldownConfiguration.Builder<C> addAllActiveCooldownListeners(Iterable<? extends CooldownActiveListener<C>> elements) Adds elements toactiveCooldownListenerslist.- Specified by:
addAllActiveCooldownListenersin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
elements- An iterable of activeCooldownListeners elements- Returns:
thisbuilder for use in a chained invocation
-
addCreationListener
public final ImmutableCooldownConfiguration.Builder<C> addCreationListener(CooldownCreationListener<C> element) Adds one element tocreationListenerslist.- Specified by:
addCreationListenerin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
element- A creationListeners element- Returns:
thisbuilder for use in a chained invocation
-
addCreationListeners
@SafeVarargs public final ImmutableCooldownConfiguration.Builder<C> addCreationListeners(CooldownCreationListener<C>... elements) Adds elements tocreationListenerslist.- Specified by:
addCreationListenersin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
elements- An array of creationListeners elements- Returns:
thisbuilder for use in a chained invocation
-
addAllCreationListeners
public final ImmutableCooldownConfiguration.Builder<C> addAllCreationListeners(Iterable<? extends CooldownCreationListener<C>> elements) Adds elements tocreationListenerslist.- Specified by:
addAllCreationListenersin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
elements- An iterable of creationListeners elements- Returns:
thisbuilder for use in a chained invocation
-
bypassCooldown
public final ImmutableCooldownConfiguration.Builder<C> bypassCooldown(@NonNull Predicate<CommandContext<C>> bypassCooldown) Initializes the value for thebypassCooldownattribute.If not set, this attribute will have a default value as returned by the initializer of
bypassCooldown.- Specified by:
bypassCooldownin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
bypassCooldown- The value for bypassCooldown- Returns:
thisbuilder for use in a chained invocation
-
clock
Initializes the value for theclockattribute.If not set, this attribute will have a default value as returned by the initializer of
clock.- Specified by:
clockin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
clock- The value for clock- Returns:
thisbuilder for use in a chained invocation
-
profileFactory
public final ImmutableCooldownConfiguration.Builder<C> profileFactory(@NonNull CooldownProfileFactory profileFactory) Initializes the value for theprofileFactoryattribute.If not set, this attribute will have a default value as returned by the initializer of
profileFactory.- Specified by:
profileFactoryin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
profileFactory- The value for profileFactory- Returns:
thisbuilder for use in a chained invocation
-
fallbackGroup
public final ImmutableCooldownConfiguration.Builder<C> fallbackGroup(@NonNull Function<Command<C>, CooldownGroup> fallbackGroup) Initializes the value for thefallbackGroupattribute.If not set, this attribute will have a default value as returned by the initializer of
fallbackGroup.- Specified by:
fallbackGroupin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Parameters:
fallbackGroup- The value for fallbackGroup- Returns:
thisbuilder for use in a chained invocation
-
build
Builds a newImmutableCooldownConfiguration.- Specified by:
buildin interfaceImmutableCooldownConfiguration.BuildFinal<C>- Returns:
- An immutable instance of CooldownConfiguration
- Throws:
IllegalStateException- if any required attributes are missing
-