Move from findbugs jsr305 to checker-qual

This commit is contained in:
Luck
2018-09-19 20:40:18 +01:00
Unverified
parent 4987ca3ba2
commit 3941c77826
236 changed files with 1625 additions and 2231 deletions
@@ -32,6 +32,8 @@ import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectCollection;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.spongepowered.api.plugin.PluginContainer;
import org.spongepowered.api.service.permission.PermissionDescription;
import org.spongepowered.api.service.permission.PermissionService;
@@ -41,46 +43,39 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public final class DescriptionBuilder implements PermissionDescription.Builder {
@Nonnull private final LPPermissionService service;
@Nonnull private final PluginContainer container;
@Nonnull private final Map<String, Tristate> roles = new HashMap<>();
@Nullable private String id = null;
@Nullable private Text description = null;
private final @NonNull LPPermissionService service;
private final @NonNull PluginContainer container;
private final @NonNull Map<String, Tristate> roles = new HashMap<>();
private @Nullable String id = null;
private @Nullable Text description = null;
public DescriptionBuilder(@Nonnull LPPermissionService service, @Nonnull PluginContainer container) {
public DescriptionBuilder(@NonNull LPPermissionService service, @NonNull PluginContainer container) {
this.service = Objects.requireNonNull(service, "service");
this.container = Objects.requireNonNull(container, "container");
}
@Nonnull
@Override
public PermissionDescription.Builder id(@Nonnull String id) {
public PermissionDescription.@NonNull Builder id(@NonNull String id) {
this.id = Objects.requireNonNull(id, "id");
return this;
}
@Nonnull
@Override
public PermissionDescription.Builder description(@Nonnull Text description) {
public PermissionDescription.@NonNull Builder description(@NonNull Text description) {
this.description = Objects.requireNonNull(description, "description");
return this;
}
@Nonnull
@Override
public PermissionDescription.Builder assign(@Nonnull String role, boolean value) {
public PermissionDescription.@NonNull Builder assign(@NonNull String role, boolean value) {
Objects.requireNonNull(role, "role");
this.roles.put(role, Tristate.fromBoolean(value));
return this;
}
@Nonnull
@Override
public PermissionDescription register() throws IllegalStateException {
public @NonNull PermissionDescription register() throws IllegalStateException {
if (this.id == null) {
throw new IllegalStateException("id cannot be null");
}
@@ -29,6 +29,7 @@ import me.lucko.luckperms.common.utils.ImmutableCollectors;
import me.lucko.luckperms.sponge.service.model.LPPermissionDescription;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.plugin.PluginContainer;
import org.spongepowered.api.service.permission.PermissionDescription;
@@ -37,8 +38,6 @@ import org.spongepowered.api.text.Text;
import java.util.Map;
import javax.annotation.Nonnull;
public final class PermissionDescriptionProxy implements PermissionDescription {
private final LPPermissionService service;
private final LPPermissionDescription handle;
@@ -48,27 +47,23 @@ public final class PermissionDescriptionProxy implements PermissionDescription {
this.handle = handle;
}
@Nonnull
@Override
public String getId() {
public @NonNull String getId() {
return this.handle.getId();
}
@Nonnull
@Override
public Text getDescription() {
public @NonNull Text getDescription() {
return this.handle.getDescription().orElse(Text.EMPTY);
}
@Nonnull
@Override
public PluginContainer getOwner() {
public @NonNull PluginContainer getOwner() {
return this.handle.getOwner().orElseGet(() -> Sponge.getGame().getPluginManager().fromInstance(this.service.getPlugin()).orElseThrow(() -> new RuntimeException("Unable to get LuckPerms instance.")));
}
@Nonnull
@Override
public Map<Subject, Boolean> getAssignedSubjects(@Nonnull String s) {
public @NonNull Map<Subject, Boolean> getAssignedSubjects(@NonNull String s) {
return this.handle.getAssignedSubjects(s).entrySet().stream()
.collect(ImmutableCollectors.toMap(
e -> new SubjectProxy(this.service, e.getKey().toReference()),
@@ -29,6 +29,7 @@ import me.lucko.luckperms.common.utils.ImmutableCollectors;
import me.lucko.luckperms.sponge.service.model.LPPermissionDescription;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.plugin.PluginContainer;
import org.spongepowered.api.service.context.ContextCalculator;
@@ -41,8 +42,6 @@ import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nonnull;
public final class PermissionServiceProxy implements PermissionService {
private final LPPermissionService handle;
@@ -50,33 +49,28 @@ public final class PermissionServiceProxy implements PermissionService {
this.handle = handle;
}
@Nonnull
@Override
public SubjectCollection getUserSubjects() {
public @NonNull SubjectCollection getUserSubjects() {
return this.handle.getUserSubjects().sponge();
}
@Nonnull
@Override
public SubjectCollection getGroupSubjects() {
public @NonNull SubjectCollection getGroupSubjects() {
return this.handle.getGroupSubjects().sponge();
}
@Nonnull
@Override
public Subject getDefaults() {
public @NonNull Subject getDefaults() {
return this.handle.getRootDefaults().sponge();
}
@Nonnull
@Override
public SubjectCollection getSubjects(@Nonnull String s) {
public @NonNull SubjectCollection getSubjects(@NonNull String s) {
return this.handle.getCollection(s).sponge();
}
@Nonnull
@Override
public Map<String, SubjectCollection> getKnownSubjects() {
public @NonNull Map<String, SubjectCollection> getKnownSubjects() {
return this.handle.getLoadedCollections().entrySet().stream()
.collect(ImmutableCollectors.toMap(
Map.Entry::getKey,
@@ -85,7 +79,7 @@ public final class PermissionServiceProxy implements PermissionService {
}
@Override
public Optional<PermissionDescription.Builder> newDescriptionBuilder(@Nonnull Object o) {
public Optional<PermissionDescription.Builder> newDescriptionBuilder(@NonNull Object o) {
Optional<PluginContainer> container = Sponge.getGame().getPluginManager().fromInstance(o);
if (!container.isPresent()) {
throw new IllegalArgumentException("Couldn't find a plugin container for " + o.getClass().getSimpleName());
@@ -94,20 +88,18 @@ public final class PermissionServiceProxy implements PermissionService {
return Optional.of(new DescriptionBuilder(this.handle, container.get()));
}
@Nonnull
@Override
public Optional<PermissionDescription> getDescription(@Nonnull String s) {
public @NonNull Optional<PermissionDescription> getDescription(@NonNull String s) {
return this.handle.getDescription(s).map(LPPermissionDescription::sponge);
}
@Nonnull
@Override
public Collection<PermissionDescription> getDescriptions() {
public @NonNull Collection<PermissionDescription> getDescriptions() {
return this.handle.getDescriptions().stream().map(LPPermissionDescription::sponge).collect(ImmutableCollectors.toSet());
}
@Override
public void registerContextCalculator(@Nonnull ContextCalculator<Subject> contextCalculator) {
public void registerContextCalculator(@NonNull ContextCalculator<Subject> contextCalculator) {
this.handle.registerContextCalculator(contextCalculator);
}
@@ -31,6 +31,7 @@ import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectCollection;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.service.context.Context;
import org.spongepowered.api.service.permission.Subject;
import org.spongepowered.api.service.permission.SubjectCollection;
@@ -39,8 +40,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
@SuppressWarnings("unchecked")
public final class SubjectCollectionProxy implements SubjectCollection {
private final LPPermissionService service;
@@ -51,28 +50,25 @@ public final class SubjectCollectionProxy implements SubjectCollection {
this.handle = handle;
}
@Nonnull
@Override
public String getIdentifier() {
public @NonNull String getIdentifier() {
return this.handle.getIdentifier();
}
@Nonnull
@Override
public Subject get(@Nonnull String s) {
public @NonNull Subject get(@NonNull String s) {
// force load the subject.
// after this call, users will expect that the subject is loaded in memory.
return this.handle.loadSubject(s).thenApply(LPSubject::sponge).join();
}
@Override
public boolean hasRegistered(@Nonnull String s) {
public boolean hasRegistered(@NonNull String s) {
return this.handle.hasRegistered(s).join();
}
@Nonnull
@Override
public Iterable<Subject> getAllSubjects() {
public @NonNull Iterable<Subject> getAllSubjects() {
// this will lazily load all subjects. it will initially just get the identifiers of each subject, and will initialize dummy
// providers for those identifiers. when any methods against the dummy are called, the actual data will be loaded.
// this behaviour should be replaced when CompletableFutures are added to Sponge
@@ -83,9 +79,8 @@ public final class SubjectCollectionProxy implements SubjectCollection {
).join();
}
@Nonnull
@Override
public Map<Subject, Boolean> getAllWithPermission(@Nonnull String s) {
public @NonNull Map<Subject, Boolean> getAllWithPermission(@NonNull String s) {
// again, these methods will lazily load subjects.
return (Map) this.handle.getAllWithPermission(s)
.thenApply(map -> map.entrySet().stream()
@@ -96,9 +91,8 @@ public final class SubjectCollectionProxy implements SubjectCollection {
).join();
}
@Nonnull
@Override
public Map<Subject, Boolean> getAllWithPermission(@Nonnull Set<Context> set, @Nonnull String s) {
public @NonNull Map<Subject, Boolean> getAllWithPermission(@NonNull Set<Context> set, @NonNull String s) {
return (Map) this.handle.getAllWithPermission(CompatibilityUtil.convertContexts(set), s)
.thenApply(map -> map.entrySet().stream()
.collect(ImmutableCollectors.toMap(
@@ -108,9 +102,8 @@ public final class SubjectCollectionProxy implements SubjectCollection {
).join();
}
@Nonnull
@Override
public Subject getDefaults() {
public @NonNull Subject getDefaults() {
return this.handle.getDefaults().sponge();
}
@@ -32,6 +32,7 @@ import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectData;
import me.lucko.luckperms.sponge.service.model.LPSubjectReference;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.service.context.Context;
import org.spongepowered.api.service.permission.Subject;
import org.spongepowered.api.service.permission.SubjectData;
@@ -42,8 +43,6 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Nonnull;
@SuppressWarnings("unchecked")
public final class SubjectDataProxy implements SubjectData {
private final LPPermissionService service;
@@ -62,9 +61,8 @@ public final class SubjectDataProxy implements SubjectData {
this.ref.resolveLp().thenApply(LPSubject::getTransientSubjectData);
}
@Nonnull
@Override
public Map<Set<Context>, Map<String, Boolean>> getAllPermissions() {
public @NonNull Map<Set<Context>, Map<String, Boolean>> getAllPermissions() {
return (Map) handle().thenApply(handle -> handle.getAllPermissions().entrySet().stream()
.collect(ImmutableCollectors.toMap(
e -> CompatibilityUtil.convertContexts(e.getKey()),
@@ -72,14 +70,13 @@ public final class SubjectDataProxy implements SubjectData {
))).join();
}
@Nonnull
@Override
public Map<String, Boolean> getPermissions(@Nonnull Set<Context> contexts) {
public @NonNull Map<String, Boolean> getPermissions(@NonNull Set<Context> contexts) {
return handle().thenApply(handle -> handle.getPermissions(CompatibilityUtil.convertContexts(contexts))).join();
}
@Override
public boolean setPermission(@Nonnull Set<Context> contexts, @Nonnull String permission, @Nonnull Tristate value) {
public boolean setPermission(@NonNull Set<Context> contexts, @NonNull String permission, @NonNull Tristate value) {
handle().thenCompose(handle -> handle.setPermission(
CompatibilityUtil.convertContexts(contexts),
permission,
@@ -95,14 +92,13 @@ public final class SubjectDataProxy implements SubjectData {
}
@Override
public boolean clearPermissions(@Nonnull Set<Context> contexts) {
public boolean clearPermissions(@NonNull Set<Context> contexts) {
handle().thenCompose(handle -> handle.clearPermissions(CompatibilityUtil.convertContexts(contexts)));
return true;
}
@Nonnull
@Override
public Map<Set<Context>, List<Subject>> getAllParents() {
public @NonNull Map<Set<Context>, List<Subject>> getAllParents() {
return (Map) handle().thenApply(handle -> handle.getAllParents().entrySet().stream()
.collect(ImmutableCollectors.toMap(
e -> CompatibilityUtil.convertContexts(e.getKey()),
@@ -113,16 +109,15 @@ public final class SubjectDataProxy implements SubjectData {
)).join();
}
@Nonnull
@Override
public List<Subject> getParents(@Nonnull Set<Context> contexts) {
public @NonNull List<Subject> getParents(@NonNull Set<Context> contexts) {
return (List) handle().thenApply(handle -> handle.getParents(CompatibilityUtil.convertContexts(contexts)).stream()
.map(s -> new SubjectProxy(this.service, s))
.collect(ImmutableCollectors.toList())).join();
}
@Override
public boolean addParent(@Nonnull Set<Context> contexts, @Nonnull Subject parent) {
public boolean addParent(@NonNull Set<Context> contexts, @NonNull Subject parent) {
handle().thenCompose(handle -> handle.addParent(
CompatibilityUtil.convertContexts(contexts),
this.service.getReferenceFactory().obtain(parent)
@@ -131,7 +126,7 @@ public final class SubjectDataProxy implements SubjectData {
}
@Override
public boolean removeParent(@Nonnull Set<Context> contexts, @Nonnull Subject parent) {
public boolean removeParent(@NonNull Set<Context> contexts, @NonNull Subject parent) {
handle().thenCompose(handle -> handle.removeParent(
CompatibilityUtil.convertContexts(contexts),
this.service.getReferenceFactory().obtain(parent)
@@ -146,14 +141,13 @@ public final class SubjectDataProxy implements SubjectData {
}
@Override
public boolean clearParents(@Nonnull Set<Context> contexts) {
public boolean clearParents(@NonNull Set<Context> contexts) {
handle().thenCompose(handle -> handle.clearParents(CompatibilityUtil.convertContexts(contexts)));
return true;
}
@Nonnull
@Override
public Map<Set<Context>, Map<String, String>> getAllOptions() {
public @NonNull Map<Set<Context>, Map<String, String>> getAllOptions() {
return (Map) handle().thenApply(handle -> handle.getAllOptions().entrySet().stream()
.collect(ImmutableCollectors.toMap(
e -> CompatibilityUtil.convertContexts(e.getKey()),
@@ -161,14 +155,13 @@ public final class SubjectDataProxy implements SubjectData {
))).join();
}
@Nonnull
@Override
public Map<String, String> getOptions(@Nonnull Set<Context> contexts) {
public @NonNull Map<String, String> getOptions(@NonNull Set<Context> contexts) {
return handle().thenApply(handle -> handle.getOptions(CompatibilityUtil.convertContexts(contexts))).join();
}
@Override
public boolean setOption(@Nonnull Set<Context> contexts, @Nonnull String key, String value) {
public boolean setOption(@NonNull Set<Context> contexts, @NonNull String key, String value) {
if (value == null) {
handle().thenCompose(handle -> handle.unsetOption(CompatibilityUtil.convertContexts(contexts), key));
return true;
@@ -179,7 +172,7 @@ public final class SubjectDataProxy implements SubjectData {
}
@Override
public boolean clearOptions(@Nonnull Set<Context> contexts) {
public boolean clearOptions(@NonNull Set<Context> contexts) {
handle().thenCompose(handle -> handle.clearOptions(CompatibilityUtil.convertContexts(contexts)));
return true;
}
@@ -35,6 +35,7 @@ import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectReference;
import me.lucko.luckperms.sponge.service.model.ProxiedSubject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.command.CommandSource;
import org.spongepowered.api.service.context.Context;
import org.spongepowered.api.service.permission.Subject;
@@ -47,8 +48,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Nonnull;
@SuppressWarnings("unchecked")
public final class SubjectProxy implements Subject, ProxiedSubject {
private final LPPermissionService service;
@@ -74,21 +73,18 @@ public final class SubjectProxy implements Subject, ProxiedSubject {
return this.contextsSupplier;
}
@Nonnull
@Override
public LPSubjectReference asSubjectReference() {
public @NonNull LPSubjectReference asSubjectReference() {
return this.ref;
}
@Nonnull
@Override
public Optional<CommandSource> getCommandSource() {
public @NonNull Optional<CommandSource> getCommandSource() {
return handle().thenApply(LPSubject::getCommandSource).join();
}
@Nonnull
@Override
public SubjectCollection getContainingCollection() {
public @NonNull SubjectCollection getContainingCollection() {
return this.service.getCollection(this.ref.getCollectionIdentifier()).sponge();
}
@@ -103,23 +99,22 @@ public final class SubjectProxy implements Subject, ProxiedSubject {
}
@Override
public boolean hasPermission(@Nonnull Set<Context> contexts, @Nonnull String permission) {
public boolean hasPermission(@NonNull Set<Context> contexts, @NonNull String permission) {
return handle().thenApply(handle -> handle.getPermissionValue(CompatibilityUtil.convertContexts(contexts), permission).asBoolean()).join();
}
@Override
public boolean hasPermission(@Nonnull String permission) {
public boolean hasPermission(@NonNull String permission) {
return handle().thenApply(handle -> handle.getPermissionValue(ImmutableContextSet.empty(), permission).asBoolean()).join();
}
@Nonnull
@Override
public Tristate getPermissionValue(@Nonnull Set<Context> contexts, @Nonnull String permission) {
public @NonNull Tristate getPermissionValue(@NonNull Set<Context> contexts, @NonNull String permission) {
return handle().thenApply(handle -> CompatibilityUtil.convertTristate(handle.getPermissionValue(CompatibilityUtil.convertContexts(contexts), permission))).join();
}
@Override
public boolean isChildOf(@Nonnull Subject parent) {
public boolean isChildOf(@NonNull Subject parent) {
return handle().thenApply(handle -> handle.isChildOf(
ImmutableContextSet.empty(),
this.service.getReferenceFactory().obtain(parent)
@@ -127,38 +122,34 @@ public final class SubjectProxy implements Subject, ProxiedSubject {
}
@Override
public boolean isChildOf(@Nonnull Set<Context> contexts, @Nonnull Subject parent) {
public boolean isChildOf(@NonNull Set<Context> contexts, @NonNull Subject parent) {
return handle().thenApply(handle -> handle.isChildOf(
CompatibilityUtil.convertContexts(contexts),
this.service.getReferenceFactory().obtain(parent)
)).join();
}
@Nonnull
@Override
public List<Subject> getParents() {
public @NonNull List<Subject> getParents() {
return (List) handle().thenApply(handle -> handle.getParents(ImmutableContextSet.empty()).stream()
.map(s -> new SubjectProxy(this.service, s))
.collect(ImmutableCollectors.toList())).join();
}
@Nonnull
@Override
public List<Subject> getParents(@Nonnull Set<Context> contexts) {
public @NonNull List<Subject> getParents(@NonNull Set<Context> contexts) {
return (List) handle().thenApply(handle -> handle.getParents(CompatibilityUtil.convertContexts(contexts)).stream()
.map(s -> new SubjectProxy(this.service, s))
.collect(ImmutableCollectors.toList())).join();
}
@Nonnull
@Override
public Optional<String> getOption(@Nonnull Set<Context> contexts, @Nonnull String key) {
public @NonNull Optional<String> getOption(@NonNull Set<Context> contexts, @NonNull String key) {
return handle().thenApply(handle -> handle.getOption(CompatibilityUtil.convertContexts(contexts), key)).join();
}
@Nonnull
@Override
public Optional<String> getOption(@Nonnull String key) {
public @NonNull Optional<String> getOption(@NonNull String key) {
return handle().thenApply(handle -> handle.getOption(ImmutableContextSet.empty(), key)).join();
}
@@ -167,9 +158,8 @@ public final class SubjectProxy implements Subject, ProxiedSubject {
return this.ref.getSubjectIdentifier();
}
@Nonnull
@Override
public Set<Context> getActiveContexts() {
public @NonNull Set<Context> getActiveContexts() {
return CompatibilityUtil.convertContexts(getContextsCache().getContextSet());
}