annotate Platform methods with nullability and contract

This commit is contained in:
dfsek
2021-12-01 08:26:30 -07:00
parent 5749af4bb2
commit 65d8dc803d
5 changed files with 47 additions and 20 deletions
@@ -7,6 +7,9 @@
package com.dfsek.terra.api; package com.dfsek.terra.api;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import java.io.File; import java.io.File;
import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.addon.BaseAddon;
@@ -27,6 +30,8 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar;
public interface Platform extends LoaderRegistrar { public interface Platform extends LoaderRegistrar {
boolean reload(); boolean reload();
@NotNull
@Contract(pure = true)
String platformName(); String platformName();
/** /**
@@ -36,27 +41,44 @@ public interface Platform extends LoaderRegistrar {
* *
* @param task Task to be run. * @param task Task to be run.
*/ */
default void runPossiblyUnsafeTask(Runnable task) { default void runPossiblyUnsafeTask(@NotNull Runnable task) {
task.run(); task.run();
} }
@NotNull
@Contract(pure = true)
WorldHandle getWorldHandle(); WorldHandle getWorldHandle();
@NotNull
@Contract(pure = true)
PluginConfig getTerraConfig(); PluginConfig getTerraConfig();
@NotNull
@Contract(pure = true)
File getDataFolder(); File getDataFolder();
@NotNull
@Contract(pure = true)
CheckedRegistry<ConfigPack> getConfigRegistry(); CheckedRegistry<ConfigPack> getConfigRegistry();
@NotNull
@Contract(pure = true)
Registry<BaseAddon> getAddons(); Registry<BaseAddon> getAddons();
@NotNull
@Contract(pure = true)
ItemHandle getItemHandle(); ItemHandle getItemHandle();
@NotNull
@Contract(pure = true)
EventManager getEventManager(); EventManager getEventManager();
default String getVersion() { @Contract(pure = true)
default @NotNull String getVersion() {
return "@VERSION@"; return "@VERSION@";
} }
@NotNull
@Contract(pure = true)
Profiler getProfiler(); Profiler getProfiler();
} }
@@ -26,6 +26,7 @@ import com.dfsek.terra.api.util.StringIdentifiable;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
@@ -250,27 +251,27 @@ public abstract class AbstractPlatform implements Platform {
} }
@Override @Override
public PluginConfig getTerraConfig() { public @NotNull PluginConfig getTerraConfig() {
return config; return config;
} }
@Override @Override
public CheckedRegistry<ConfigPack> getConfigRegistry() { public @NotNull CheckedRegistry<ConfigPack> getConfigRegistry() {
return checkedConfigRegistry; return checkedConfigRegistry;
} }
@Override @Override
public Registry<BaseAddon> getAddons() { public @NotNull Registry<BaseAddon> getAddons() {
return lockedAddonRegistry; return lockedAddonRegistry;
} }
@Override @Override
public EventManager getEventManager() { public @NotNull EventManager getEventManager() {
return eventManager; return eventManager;
} }
@Override @Override
public Profiler getProfiler() { public @NotNull Profiler getProfiler() {
return profiler; return profiler;
} }
} }
@@ -34,6 +34,8 @@ import com.dfsek.terra.bukkit.handles.BukkitItemHandle;
import com.dfsek.terra.bukkit.handles.BukkitWorldHandle; import com.dfsek.terra.bukkit.handles.BukkitWorldHandle;
import com.dfsek.terra.bukkit.world.BukkitBiome; import com.dfsek.terra.bukkit.world.BukkitBiome;
import org.jetbrains.annotations.NotNull;
public class PlatformImpl extends AbstractPlatform { public class PlatformImpl extends AbstractPlatform {
private final ItemHandle itemHandle = new BukkitItemHandle(); private final ItemHandle itemHandle = new BukkitItemHandle();
@@ -57,27 +59,27 @@ public class PlatformImpl extends AbstractPlatform {
} }
@Override @Override
public String platformName() { public @NotNull String platformName() {
return "Bukkit"; return "Bukkit";
} }
@Override @Override
public void runPossiblyUnsafeTask(Runnable task) { public void runPossiblyUnsafeTask(@NotNull Runnable task) {
Bukkit.getScheduler().runTask(plugin, task); Bukkit.getScheduler().runTask(plugin, task);
} }
@Override @Override
public WorldHandle getWorldHandle() { public @NotNull WorldHandle getWorldHandle() {
return handle; return handle;
} }
@Override @Override
public File getDataFolder() { public @NotNull File getDataFolder() {
return plugin.getDataFolder(); return plugin.getDataFolder();
} }
@Override @Override
public ItemHandle getItemHandle() { public @NotNull ItemHandle getItemHandle() {
return itemHandle; return itemHandle;
} }
@@ -27,6 +27,7 @@ import net.minecraft.MinecraftVersion;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.BuiltinRegistries;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -112,22 +113,22 @@ public class PlatformImpl extends AbstractPlatform {
} }
@Override @Override
public String platformName() { public @NotNull String platformName() {
return "Fabric"; return "Fabric";
} }
@Override @Override
public WorldHandle getWorldHandle() { public @NotNull WorldHandle getWorldHandle() {
return worldHandle; return worldHandle;
} }
@Override @Override
public File getDataFolder() { public @NotNull File getDataFolder() {
return dataFolder.value(); return dataFolder.value();
} }
@Override @Override
public ItemHandle getItemHandle() { public @NotNull ItemHandle getItemHandle() {
return itemHandle; return itemHandle;
} }
@@ -17,6 +17,7 @@
package com.dfsek.terra.sponge; package com.dfsek.terra.sponge;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.api.Sponge; import org.spongepowered.api.Sponge;
import java.io.File; import java.io.File;
@@ -43,22 +44,22 @@ public class PlatformImpl extends AbstractPlatform {
} }
@Override @Override
public String platformName() { public @NotNull String platformName() {
return "Sponge"; return "Sponge";
} }
@Override @Override
public WorldHandle getWorldHandle() { public @NotNull WorldHandle getWorldHandle() {
return worldHandle; return worldHandle;
} }
@Override @Override
public File getDataFolder() { public @NotNull File getDataFolder() {
return Sponge.configManager().pluginConfig(plugin.getPluginContainer()).directory().toFile(); return Sponge.configManager().pluginConfig(plugin.getPluginContainer()).directory().toFile();
} }
@Override @Override
public ItemHandle getItemHandle() { public @NotNull ItemHandle getItemHandle() {
return null; return null;
} }
} }