SPIGOT-2540: Add nullability annotations to entire Bukkit API
By: Darkyenus <darkyenus@gmail.com>
This commit is contained in:
+3
@@ -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();
|
||||
}
|
||||
|
||||
+24
-13
@@ -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) {
|
||||
|
||||
+3
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user