Interface RequirementBindings<C,R extends Requirement<C,R>>
- Type Parameters:
C- command sender typeR- requirement type
@API(status=STABLE,
since="1.0.0")
public interface RequirementBindings<C,R extends Requirement<C,R>>
Utility for binding annotations to
requirements.- Since:
- 1.0.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic <C,R extends Requirement<C, R>>
@NonNull RequirementBindings<C,R> create(@NonNull org.incendo.cloud.annotations.AnnotationParser<C> annotationParser, @NonNull org.incendo.cloud.key.CloudKey<Requirements<C, R>> requirementKey) Creates a newRequirementBindingsinstance.<A extends Annotation>
@NonNull RequirementBindings<C,R> Registers a new binding for the givenannotationto the givenrequirement.
-
Method Details
-
create
static <C,R extends Requirement<C, @NonNull RequirementBindings<C,R>> R> create(@NonNull org.incendo.cloud.annotations.AnnotationParser<C> annotationParser, @NonNull org.incendo.cloud.key.CloudKey<Requirements<C, R>> requirementKey) Creates a newRequirementBindingsinstance.- Type Parameters:
C- command sender typeR- requirement type- Parameters:
annotationParser- annotation parserrequirementKey- key used to store the requirements in the command meta, should be the same as the key supplied toRequirementPostprocessor- Returns:
- the bindings instance
-
register
<A extends Annotation> @NonNull RequirementBindings<C,R> register(@NonNull Class<A> annotation, @NonNull Function<A, R> requirement) Registers a new binding for the givenannotationto the givenrequirement.- Type Parameters:
A- annotation type- Parameters:
annotation- annotation classrequirement- function that returns the requirement- Returns:
this
-