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

View File

@@ -7,6 +7,9 @@
package com.dfsek.terra.api;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import com.dfsek.terra.api.addon.BaseAddon;
@@ -27,6 +30,8 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar;
public interface Platform extends LoaderRegistrar {
boolean reload();
@NotNull
@Contract(pure = true)
String platformName();
/**
@@ -36,27 +41,44 @@ public interface Platform extends LoaderRegistrar {
*
* @param task Task to be run.
*/
default void runPossiblyUnsafeTask(Runnable task) {
default void runPossiblyUnsafeTask(@NotNull Runnable task) {
task.run();
}
@NotNull
@Contract(pure = true)
WorldHandle getWorldHandle();
@NotNull
@Contract(pure = true)
PluginConfig getTerraConfig();
@NotNull
@Contract(pure = true)
File getDataFolder();
@NotNull
@Contract(pure = true)
CheckedRegistry<ConfigPack> getConfigRegistry();
@NotNull
@Contract(pure = true)
Registry<BaseAddon> getAddons();
@NotNull
@Contract(pure = true)
ItemHandle getItemHandle();
@NotNull
@Contract(pure = true)
EventManager getEventManager();
default String getVersion() {
@Contract(pure = true)
default @NotNull String getVersion() {
return "@VERSION@";
}
@NotNull
@Contract(pure = true)
Profiler getProfiler();
}

View File

@@ -26,6 +26,7 @@ import com.dfsek.terra.api.util.StringIdentifiable;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
@@ -250,27 +251,27 @@ public abstract class AbstractPlatform implements Platform {
}
@Override
public PluginConfig getTerraConfig() {
public @NotNull PluginConfig getTerraConfig() {
return config;
}
@Override
public CheckedRegistry<ConfigPack> getConfigRegistry() {
public @NotNull CheckedRegistry<ConfigPack> getConfigRegistry() {
return checkedConfigRegistry;
}
@Override
public Registry<BaseAddon> getAddons() {
public @NotNull Registry<BaseAddon> getAddons() {
return lockedAddonRegistry;
}
@Override
public EventManager getEventManager() {
public @NotNull EventManager getEventManager() {
return eventManager;
}
@Override
public Profiler getProfiler() {
public @NotNull Profiler getProfiler() {
return profiler;
}
}

View File

@@ -34,6 +34,8 @@ import com.dfsek.terra.bukkit.handles.BukkitItemHandle;
import com.dfsek.terra.bukkit.handles.BukkitWorldHandle;
import com.dfsek.terra.bukkit.world.BukkitBiome;
import org.jetbrains.annotations.NotNull;
public class PlatformImpl extends AbstractPlatform {
private final ItemHandle itemHandle = new BukkitItemHandle();
@@ -57,27 +59,27 @@ public class PlatformImpl extends AbstractPlatform {
}
@Override
public String platformName() {
public @NotNull String platformName() {
return "Bukkit";
}
@Override
public void runPossiblyUnsafeTask(Runnable task) {
public void runPossiblyUnsafeTask(@NotNull Runnable task) {
Bukkit.getScheduler().runTask(plugin, task);
}
@Override
public WorldHandle getWorldHandle() {
public @NotNull WorldHandle getWorldHandle() {
return handle;
}
@Override
public File getDataFolder() {
public @NotNull File getDataFolder() {
return plugin.getDataFolder();
}
@Override
public ItemHandle getItemHandle() {
public @NotNull ItemHandle getItemHandle() {
return itemHandle;
}

View File

@@ -27,6 +27,7 @@ import net.minecraft.MinecraftVersion;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -112,22 +113,22 @@ public class PlatformImpl extends AbstractPlatform {
}
@Override
public String platformName() {
public @NotNull String platformName() {
return "Fabric";
}
@Override
public WorldHandle getWorldHandle() {
public @NotNull WorldHandle getWorldHandle() {
return worldHandle;
}
@Override
public File getDataFolder() {
public @NotNull File getDataFolder() {
return dataFolder.value();
}
@Override
public ItemHandle getItemHandle() {
public @NotNull ItemHandle getItemHandle() {
return itemHandle;
}

View File

@@ -17,6 +17,7 @@
package com.dfsek.terra.sponge;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.api.Sponge;
import java.io.File;
@@ -43,22 +44,22 @@ public class PlatformImpl extends AbstractPlatform {
}
@Override
public String platformName() {
public @NotNull String platformName() {
return "Sponge";
}
@Override
public WorldHandle getWorldHandle() {
public @NotNull WorldHandle getWorldHandle() {
return worldHandle;
}
@Override
public File getDataFolder() {
public @NotNull File getDataFolder() {
return Sponge.configManager().pluginConfig(plugin.getPluginContainer()).directory().toFile();
}
@Override
public ItemHandle getItemHandle() {
public @NotNull ItemHandle getItemHandle() {
return null;
}
}