SPIGOT-2540: Add nullability annotations to entire Bukkit API

By: Darkyenus <darkyenus@gmail.com>
This commit is contained in:
Bukkit/Spigot
2019-03-13 17:42:57 +11:00
parent e069a80fd8
commit 416c865476
565 changed files with 5372 additions and 2008 deletions

View File

@@ -6,6 +6,8 @@ import org.bukkit.event.server.ServiceUnregisterEvent;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
@@ -35,7 +37,7 @@ public class SimpleServicesManager implements ServicesManager {
* @param plugin plugin with the provider
* @param priority priority of the provider
*/
public <T> void register(Class<T> service, T provider, Plugin plugin, ServicePriority priority) {
public <T> void register(@NotNull Class<T> service, @NotNull T provider, @NotNull Plugin plugin, @NotNull ServicePriority priority) {
RegisteredServiceProvider<T> registeredProvider = null;
synchronized (providers) {
List<RegisteredServiceProvider<?>> registered = providers.get(service);
@@ -63,7 +65,7 @@ public class SimpleServicesManager implements ServicesManager {
*
* @param plugin The plugin
*/
public void unregisterAll(Plugin plugin) {
public void unregisterAll(@NotNull Plugin plugin) {
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
synchronized (providers) {
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
@@ -105,7 +107,7 @@ public class SimpleServicesManager implements ServicesManager {
* @param service The service interface
* @param provider The service provider implementation
*/
public void unregister(Class<?> service, Object provider) {
public void unregister(@NotNull Class<?> service, @NotNull Object provider) {
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
synchronized (providers) {
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
@@ -152,7 +154,7 @@ public class SimpleServicesManager implements ServicesManager {
*
* @param provider The service provider implementation
*/
public void unregister(Object provider) {
public void unregister(@NotNull Object provider) {
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
synchronized (providers) {
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
@@ -196,7 +198,8 @@ public class SimpleServicesManager implements ServicesManager {
* @param service The service interface
* @return provider or null
*/
public <T> T load(Class<T> service) {
@Nullable
public <T> T load(@NotNull Class<T> service) {
synchronized (providers) {
List<RegisteredServiceProvider<?>> registered = providers.get(service);
@@ -217,8 +220,9 @@ public class SimpleServicesManager implements ServicesManager {
* @param service The service interface
* @return provider registration or null
*/
@Nullable
@SuppressWarnings("unchecked")
public <T> RegisteredServiceProvider<T> getRegistration(Class<T> service) {
public <T> RegisteredServiceProvider<T> getRegistration(@NotNull Class<T> service) {
synchronized (providers) {
List<RegisteredServiceProvider<?>> registered = providers.get(service);
@@ -235,9 +239,10 @@ public class SimpleServicesManager implements ServicesManager {
* Get registrations of providers for a plugin.
*
* @param plugin The plugin
* @return provider registration or null
* @return provider registrations
*/
public List<RegisteredServiceProvider<?>> getRegistrations(Plugin plugin) {
@NotNull
public List<RegisteredServiceProvider<?>> getRegistrations(@NotNull Plugin plugin) {
ImmutableList.Builder<RegisteredServiceProvider<?>> ret = ImmutableList.<RegisteredServiceProvider<?>>builder();
synchronized (providers) {
for (List<RegisteredServiceProvider<?>> registered : providers.values()) {
@@ -259,8 +264,9 @@ public class SimpleServicesManager implements ServicesManager {
* @param service The service interface
* @return a copy of the list of registrations
*/
@NotNull
@SuppressWarnings("unchecked")
public <T> List<RegisteredServiceProvider<T>> getRegistrations(Class<T> service) {
public <T> List<RegisteredServiceProvider<T>> getRegistrations(@NotNull Class<T> service) {
ImmutableList.Builder<RegisteredServiceProvider<T>> ret;
synchronized (providers) {
List<RegisteredServiceProvider<?>> registered = providers.get(service);
@@ -285,6 +291,7 @@ public class SimpleServicesManager implements ServicesManager {
*
* @return a copy of the set of known services
*/
@NotNull
public Set<Class<?>> getKnownServices() {
synchronized (providers) {
return ImmutableSet.<Class<?>>copyOf(providers.keySet());
@@ -298,7 +305,7 @@ public class SimpleServicesManager implements ServicesManager {
* @param service service to check
* @return true if and only if there are registered providers
*/
public <T> boolean isProvidedFor(Class<T> service) {
public <T> boolean isProvidedFor(@NotNull Class<T> service) {
synchronized (providers) {
return providers.containsKey(service);
}