From f3d90b149cb0764965c649b6543aba262ec7f0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Wed, 17 Jan 2024 09:31:22 +0100 Subject: [PATCH] chore: update README and add non-null requirements --- .../cloud/processors/cache/CaffeineCache.java | 7 ++++++- .../cloud/processors/cache/GuavaCache.java | 4 ++++ .../cloud/processors/cache/SimpleCache.java | 6 ++++++ cloud-processors-confirmation/README.md | 15 ++++++++++++++- .../ConfirmationExecutionHandler.java | 3 ++- .../confirmation/ConfirmationManager.java | 8 ++++++-- .../confirmation/ConfirmationPostprocessor.java | 3 ++- .../annotations/ConfirmationBuilderModifier.java | 2 ++ cloud-processors-cooldown/README.md | 15 ++++++++++++++- cloud-processors-requirements/README.md | 15 ++++++++++++++- .../requirements/RequirementApplicable.java | 3 +++ .../annotations/RequirementBindingsImpl.java | 2 ++ 12 files changed, 75 insertions(+), 8 deletions(-) diff --git a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/CaffeineCache.java b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/CaffeineCache.java index 20ce9f1..8669b6b 100644 --- a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/CaffeineCache.java +++ b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/CaffeineCache.java @@ -24,6 +24,7 @@ package org.incendo.cloud.processors.cache; import com.github.benmanes.caffeine.cache.Cache; +import java.util.Objects; import org.apiguardian.api.API; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -53,21 +54,25 @@ public final class CaffeineCache implements CloudCache { private final Cache cache; private CaffeineCache(final @NonNull Cache cache) { - this.cache = cache; + this.cache = Objects.requireNonNull(cache, "cache"); } @Override public void delete(final @NonNull K key) { + Objects.requireNonNull(key, "key"); this.cache.invalidate(key); } @Override public void put(final @NonNull K key, final @NonNull V value) { + Objects.requireNonNull(key, "key"); + Objects.requireNonNull(value, "value"); this.cache.put(key, value); } @Override public @Nullable V getIfPresent(final @NonNull K key) { + Objects.requireNonNull(key, "key"); return this.cache.getIfPresent(key); } } diff --git a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/GuavaCache.java b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/GuavaCache.java index 7c193a3..b0266e6 100644 --- a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/GuavaCache.java +++ b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/GuavaCache.java @@ -59,16 +59,20 @@ private GuavaCache(final @NonNull Cache cache) { @Override public void delete(final @NonNull K key) { + Objects.requireNonNull(key, "key"); this.cache.invalidate(key); } @Override public void put(final @NonNull K key, final @NonNull V value) { + Objects.requireNonNull(key, "key"); + Objects.requireNonNull(value, "value"); this.cache.put(key, value); } @Override public @Nullable V getIfPresent(final @NonNull K key) { + Objects.requireNonNull(key, "key"); return this.cache.getIfPresent(key); } } diff --git a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/SimpleCache.java b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/SimpleCache.java index 07f7e18..8aad18f 100644 --- a/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/SimpleCache.java +++ b/cloud-processors-common/src/main/java/org/incendo/cloud/processors/cache/SimpleCache.java @@ -24,6 +24,7 @@ package org.incendo.cloud.processors.cache; import java.util.Map; +import java.util.Objects; import java.util.WeakHashMap; import org.apiguardian.api.API; import org.checkerframework.checker.nullness.qual.NonNull; @@ -58,21 +59,26 @@ public final class SimpleCache implements CloudCache { @Override public void delete(final @NonNull K key) { + Objects.requireNonNull(key, "key"); this.map.remove(key); } @Override public void put(final @NonNull K key, final @NonNull V value) { + Objects.requireNonNull(key, "key"); + Objects.requireNonNull(value, "value"); this.map.put(key, value); } @Override public @Nullable V getIfPresent(final @NonNull K key) { + Objects.requireNonNull(key, "key"); return this.map.get(key); } @Override public @Nullable V popIfPresent(final @NonNull K key) { + Objects.requireNonNull(key, "key"); return this.map.remove(key); } } diff --git a/cloud-processors-confirmation/README.md b/cloud-processors-confirmation/README.md index f5904e6..4c9a2c0 100644 --- a/cloud-processors-confirmation/README.md +++ b/cloud-processors-confirmation/README.md @@ -4,7 +4,20 @@ Postprocessor that adds the ability to require an extra confirmation before exec ## Installation -cloud-processors-confirmation is not yet available on Maven Central. +Snapshots are available on the Sonatype Snapshots Repository: + +```xml + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + + org.incendo + cloud-processors-confirmation + 1.0.0-SNAPSHOT + +``` ## Usage diff --git a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationExecutionHandler.java b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationExecutionHandler.java index 0f136a7..f088e87 100644 --- a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationExecutionHandler.java +++ b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationExecutionHandler.java @@ -25,6 +25,7 @@ import cloud.commandframework.context.CommandContext; import cloud.commandframework.execution.CommandExecutionHandler; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.CompletableFuture; import org.apiguardian.api.API; @@ -42,7 +43,7 @@ final class ConfirmationExecutionHandler implements CommandExecutionHandler.F private final ConfirmationManager confirmationManager; ConfirmationExecutionHandler(final @NonNull ConfirmationManager confirmationManager) { - this.confirmationManager = confirmationManager; + this.confirmationManager = Objects.requireNonNull(confirmationManager, "confirmationManager"); } @Override diff --git a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationManager.java b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationManager.java index c42346c..77203da 100644 --- a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationManager.java +++ b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationManager.java @@ -68,8 +68,8 @@ public final class ConfirmationManager implements Command.Builder.Applicable< private final ConfirmationConfiguration configuration; private ConfirmationManager(final @NonNull ConfirmationConfiguration configuration) { - this.cache = configuration.cache(); - this.configuration = configuration; + this.cache = Objects.requireNonNull(configuration.cache(), "cache"); + this.configuration = Objects.requireNonNull(configuration, "configuration"); } /** @@ -119,6 +119,8 @@ private ConfirmationManager(final @NonNull ConfirmationConfiguration configur * @return optional containing the value if it exists and has not yet expired */ public @NonNull Optional> popPending(final @NonNull C sender) { + Objects.requireNonNull(sender, "sender"); + final ConfirmationContext context = this.cache.popIfPresent(sender); if (context == null) { return Optional.empty(); @@ -142,6 +144,8 @@ private ConfirmationManager(final @NonNull ConfirmationConfiguration configur * @param context confirmation context */ void addPending(final @NonNull C sender, final @NonNull ConfirmationContext context) { + Objects.requireNonNull(sender, "sender"); + Objects.requireNonNull(context, "context"); this.cache.put(sender, context); } } diff --git a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationPostprocessor.java b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationPostprocessor.java index 78133d7..1f9e009 100644 --- a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationPostprocessor.java +++ b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/ConfirmationPostprocessor.java @@ -27,6 +27,7 @@ import cloud.commandframework.execution.postprocessor.CommandPostprocessor; import cloud.commandframework.services.types.ConsumerService; import java.time.Instant; +import java.util.Objects; import org.apiguardian.api.API; import org.checkerframework.checker.nullness.qual.NonNull; @@ -42,7 +43,7 @@ final class ConfirmationPostprocessor implements CommandPostprocessor { private final ConfirmationManager confirmationManager; ConfirmationPostprocessor(final @NonNull ConfirmationManager confirmationManager) { - this.confirmationManager = confirmationManager; + this.confirmationManager = Objects.requireNonNull(confirmationManager, "confirmationManager"); } @Override diff --git a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/annotations/ConfirmationBuilderModifier.java b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/annotations/ConfirmationBuilderModifier.java index c0f070c..58585fc 100644 --- a/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/annotations/ConfirmationBuilderModifier.java +++ b/cloud-processors-confirmation/src/main/java/org/incendo/cloud/processors/confirmation/annotations/ConfirmationBuilderModifier.java @@ -26,6 +26,7 @@ import cloud.commandframework.Command; import cloud.commandframework.annotations.AnnotationParser; import cloud.commandframework.annotations.BuilderModifier; +import java.util.Objects; import org.apiguardian.api.API; import org.checkerframework.checker.nullness.qual.NonNull; import org.incendo.cloud.processors.confirmation.ConfirmationManager; @@ -58,6 +59,7 @@ public final class ConfirmationBuilderModifier implements BuilderModifier void install(final @NonNull AnnotationParser annotationParser) { + Objects.requireNonNull(annotationParser, "annotationParser"); annotationParser.registerBuilderModifier(Confirmation.class, of()); } diff --git a/cloud-processors-cooldown/README.md b/cloud-processors-cooldown/README.md index d010a8a..5d96d9b 100644 --- a/cloud-processors-cooldown/README.md +++ b/cloud-processors-cooldown/README.md @@ -4,7 +4,20 @@ Postprocessor that adds command cooldowns. ## Installation -cloud-processors-cooldown is not yet available on Maven Central. +Snapshots are available on the Sonatype Snapshots Repository: + +```xml + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + + org.incendo + cloud-processors-cooldown + 1.0.0-SNAPSHOT + +``` ## Usage diff --git a/cloud-processors-requirements/README.md b/cloud-processors-requirements/README.md index 952721c..513afbd 100644 --- a/cloud-processors-requirements/README.md +++ b/cloud-processors-requirements/README.md @@ -8,7 +8,20 @@ are defined on a per-command basis. ## Installation -Cloud Requirements is not yet available on Maven Central. +Snapshots are available on the Sonatype Snapshots Repository: + +```xml + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + + org.incendo + cloud-processors-requirements + 1.0.0-SNAPSHOT + +``` ## Usage diff --git a/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/RequirementApplicable.java b/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/RequirementApplicable.java index 23b98ec..2edd1b0 100644 --- a/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/RequirementApplicable.java +++ b/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/RequirementApplicable.java @@ -98,6 +98,7 @@ private RequirementApplicableFactory(final @NonNull CloudKey> * @return the {@link RequirementApplicable} instance */ public @NonNull RequirementApplicable create(final @NonNull Requirements requirements) { + Objects.requireNonNull(requirements, "requirements"); return new RequirementApplicable<>(this.requirementKey, requirements); } @@ -108,6 +109,7 @@ private RequirementApplicableFactory(final @NonNull CloudKey> * @return the {@link RequirementApplicable} instance */ public @NonNull RequirementApplicable create(final @NonNull List<@NonNull R> requirements) { + Objects.requireNonNull(requirements, "requirements"); return new RequirementApplicable<>(this.requirementKey, Requirements.of(requirements)); } @@ -120,6 +122,7 @@ private RequirementApplicableFactory(final @NonNull CloudKey> @SafeVarargs @SuppressWarnings("varargs") public final @NonNull RequirementApplicable create(final @NonNull R @NonNull... requirements) { + Objects.requireNonNull(requirements, "requirements"); return new RequirementApplicable<>(this.requirementKey, Requirements.of(requirements)); } } diff --git a/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/annotations/RequirementBindingsImpl.java b/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/annotations/RequirementBindingsImpl.java index 7357de1..4759213 100644 --- a/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/annotations/RequirementBindingsImpl.java +++ b/cloud-processors-requirements/src/main/java/org/incendo/cloud/processors/requirements/annotations/RequirementBindingsImpl.java @@ -55,6 +55,8 @@ final class RequirementBindingsImpl> implements R final @NonNull Class annotation, final @NonNull Function requirement ) { + Objects.requireNonNull(annotation, "annotation"); + Objects.requireNonNull(requirement, "requirement"); this.annotationParser.registerBuilderModifier(annotation, new RequirementBuilderModifier<>(requirement)); return this; }