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

@@ -1,5 +1,7 @@
package org.bukkit.configuration.serialization;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
/**
@@ -31,5 +33,6 @@ public interface ConfigurationSerializable {
*
* @return Map containing the current state of this class
*/
@NotNull
public Map<String, Object> serialize();
}

View File

@@ -21,6 +21,8 @@ import org.bukkit.potion.PotionEffect;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.BlockVector;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Utility class for storing and retrieving classes for {@link Configuration}.
@@ -43,11 +45,12 @@ public class ConfigurationSerialization {
registerClass(BoundingBox.class);
}
protected ConfigurationSerialization(Class<? extends ConfigurationSerializable> clazz) {
protected ConfigurationSerialization(@NotNull Class<? extends ConfigurationSerializable> clazz) {
this.clazz = clazz;
}
protected Method getMethod(String name, boolean isStatic) {
@Nullable
protected Method getMethod(@NotNull String name, boolean isStatic) {
try {
Method method = clazz.getDeclaredMethod(name, Map.class);
@@ -66,6 +69,7 @@ public class ConfigurationSerialization {
}
}
@Nullable
protected Constructor<? extends ConfigurationSerializable> getConstructor() {
try {
return clazz.getConstructor(Map.class);
@@ -76,7 +80,8 @@ public class ConfigurationSerialization {
}
}
protected ConfigurationSerializable deserializeViaMethod(Method method, Map<String, ?> args) {
@Nullable
protected ConfigurationSerializable deserializeViaMethod(@NotNull Method method, @NotNull Map<String, ?> args) {
try {
ConfigurationSerializable result = (ConfigurationSerializable) method.invoke(null, args);
@@ -95,7 +100,8 @@ public class ConfigurationSerialization {
return null;
}
protected ConfigurationSerializable deserializeViaCtor(Constructor<? extends ConfigurationSerializable> ctor, Map<String, ?> args) {
@Nullable
protected ConfigurationSerializable deserializeViaCtor(@NotNull Constructor<? extends ConfigurationSerializable> ctor, @NotNull Map<String, ?> args) {
try {
return ctor.newInstance(args);
} catch (Throwable ex) {
@@ -108,7 +114,8 @@ public class ConfigurationSerialization {
return null;
}
public ConfigurationSerializable deserialize(Map<String, ?> args) {
@Nullable
public ConfigurationSerializable deserialize(@NotNull Map<String, ?> args) {
Validate.notNull(args, "Args must not be null");
ConfigurationSerializable result = null;
@@ -156,7 +163,8 @@ public class ConfigurationSerialization {
* @param clazz Class to deserialize into
* @return New instance of the specified class
*/
public static ConfigurationSerializable deserializeObject(Map<String, ?> args, Class<? extends ConfigurationSerializable> clazz) {
@Nullable
public static ConfigurationSerializable deserializeObject(@NotNull Map<String, ?> args, @NotNull Class<? extends ConfigurationSerializable> clazz) {
return new ConfigurationSerialization(clazz).deserialize(args);
}
@@ -174,7 +182,8 @@ public class ConfigurationSerialization {
* @param args Arguments for deserialization
* @return New instance of the specified class
*/
public static ConfigurationSerializable deserializeObject(Map<String, ?> args) {
@Nullable
public static ConfigurationSerializable deserializeObject(@NotNull Map<String, ?> args) {
Class<? extends ConfigurationSerializable> clazz = null;
if (args.containsKey(SERIALIZED_TYPE_KEY)) {
@@ -205,7 +214,7 @@ public class ConfigurationSerialization {
*
* @param clazz Class to register
*/
public static void registerClass(Class<? extends ConfigurationSerializable> clazz) {
public static void registerClass(@NotNull Class<? extends ConfigurationSerializable> clazz) {
DelegateDeserialization delegate = clazz.getAnnotation(DelegateDeserialization.class);
if (delegate == null) {
@@ -222,7 +231,7 @@ public class ConfigurationSerialization {
* @param alias Alias to register as
* @see SerializableAs
*/
public static void registerClass(Class<? extends ConfigurationSerializable> clazz, String alias) {
public static void registerClass(@NotNull Class<? extends ConfigurationSerializable> clazz, @NotNull String alias) {
aliases.put(alias, clazz);
}
@@ -231,7 +240,7 @@ public class ConfigurationSerialization {
*
* @param alias Alias to unregister
*/
public static void unregisterClass(String alias) {
public static void unregisterClass(@NotNull String alias) {
aliases.remove(alias);
}
@@ -241,7 +250,7 @@ public class ConfigurationSerialization {
*
* @param clazz Class to unregister
*/
public static void unregisterClass(Class<? extends ConfigurationSerializable> clazz) {
public static void unregisterClass(@NotNull Class<? extends ConfigurationSerializable> clazz) {
while (aliases.values().remove(clazz)) {
;
}
@@ -254,7 +263,8 @@ public class ConfigurationSerialization {
* @param alias Alias of the serializable
* @return Registered class, or null if not found
*/
public static Class<? extends ConfigurationSerializable> getClassByAlias(String alias) {
@Nullable
public static Class<? extends ConfigurationSerializable> getClassByAlias(@NotNull String alias) {
return aliases.get(alias);
}
@@ -265,7 +275,8 @@ public class ConfigurationSerialization {
* @param clazz Class to get alias for
* @return Alias to use for the class
*/
public static String getAlias(Class<? extends ConfigurationSerializable> clazz) {
@NotNull
public static String getAlias(@NotNull Class<? extends ConfigurationSerializable> clazz) {
DelegateDeserialization delegate = clazz.getAnnotation(DelegateDeserialization.class);
if (delegate != null) {

View File

@@ -1,5 +1,7 @@
package org.bukkit.configuration.serialization;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -18,5 +20,6 @@ public @interface DelegateDeserialization {
*
* @return Delegate class
*/
@NotNull
public Class<? extends ConfigurationSerializable> value();
}

View File

@@ -1,5 +1,7 @@
package org.bukkit.configuration.serialization;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -30,5 +32,6 @@ public @interface SerializableAs {
*
* @return Name to serialize the class as.
*/
@NotNull
public String value();
}