1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-01-12 10:20:28 +00:00

Replace Collections methods with {List,Map,Set}.of

The two implementations aren't entirely compatible - the implementation
returned by .of will throw an NPE on .contains(null), whereas the
Collections implementations just return false. However, we try to avoid
passing null to collections methods, so this should be safe.

There's no strong reason to do this, but it helps make the code a little
more consistent
This commit is contained in:
Jonathan Coates 2023-10-21 10:37:43 +01:00
parent 8eabd4f303
commit cab66a2d6e
No known key found for this signature in database
GPG Key ID: B9E431FF07C98D06
37 changed files with 79 additions and 95 deletions

View File

@ -33,7 +33,6 @@ import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -219,7 +218,7 @@ public abstract class AbstractComputerScreen<T extends AbstractComputerMenu> ext
private void alert(Component title, Component message) {
OptionScreen.show(minecraft, title, message,
Collections.singletonList(OptionScreen.newButton(OK, b -> minecraft.setScreen(this))),
List.of(OptionScreen.newButton(OK, b -> minecraft.setScreen(this))),
() -> minecraft.setScreen(this)
);
}

View File

@ -48,8 +48,8 @@ public class UpgradeManager<R extends UpgradeSerialiser<? extends T>, T extends
private final String kind;
private final ResourceKey<Registry<R>> registry;
private Map<String, UpgradeWrapper<R, T>> current = Collections.emptyMap();
private Map<T, UpgradeWrapper<R, T>> currentWrappers = Collections.emptyMap();
private Map<String, UpgradeWrapper<R, T>> current = Map.of();
private Map<T, UpgradeWrapper<R, T>> currentWrappers = Map.of();
public UpgradeManager(String kind, String path, ResourceKey<Registry<R>> registry) {
super(GSON, path);

View File

@ -12,7 +12,7 @@ import java.util.HashMap;
import java.util.Map;
final class WiredNetworkChangeImpl implements WiredNetworkChange {
private static final WiredNetworkChangeImpl EMPTY = new WiredNetworkChangeImpl(Collections.emptyMap(), Collections.emptyMap());
private static final WiredNetworkChangeImpl EMPTY = new WiredNetworkChangeImpl(Map.of(), Map.of());
private final Map<String, IPeripheral> removed;
private final Map<String, IPeripheral> added;
@ -27,11 +27,11 @@ final class WiredNetworkChangeImpl implements WiredNetworkChange {
}
static WiredNetworkChangeImpl added(Map<String, IPeripheral> added) {
return added.isEmpty() ? EMPTY : new WiredNetworkChangeImpl(Collections.emptyMap(), Collections.unmodifiableMap(added));
return added.isEmpty() ? EMPTY : new WiredNetworkChangeImpl(Map.of(), Collections.unmodifiableMap(added));
}
static WiredNetworkChangeImpl removed(Map<String, IPeripheral> removed) {
return removed.isEmpty() ? EMPTY : new WiredNetworkChangeImpl(Collections.unmodifiableMap(removed), Collections.emptyMap());
return removed.isEmpty() ? EMPTY : new WiredNetworkChangeImpl(Collections.unmodifiableMap(removed), Map.of());
}
static WiredNetworkChangeImpl changeOf(Map<String, IPeripheral> oldPeripherals, Map<String, IPeripheral> newPeripherals) {
@ -39,9 +39,9 @@ final class WiredNetworkChangeImpl implements WiredNetworkChange {
if (oldPeripherals.isEmpty() && newPeripherals.isEmpty()) {
return EMPTY;
} else if (oldPeripherals.isEmpty()) {
return new WiredNetworkChangeImpl(Collections.emptyMap(), newPeripherals);
return new WiredNetworkChangeImpl(Map.of(), newPeripherals);
} else if (newPeripherals.isEmpty()) {
return new WiredNetworkChangeImpl(oldPeripherals, Collections.emptyMap());
return new WiredNetworkChangeImpl(oldPeripherals, Map.of());
}
Map<String, IPeripheral> added = new HashMap<>(newPeripherals);

View File

@ -56,10 +56,10 @@ final class WiredNetworkImpl implements WiredNetwork {
// Move all nodes across into this network, destroying the original nodes.
nodes.addAll(otherNodes);
for (var node : otherNodes) node.network = this;
other.nodes = Collections.emptySet();
other.nodes = Set.of();
// Move all peripherals across,
other.peripherals = Collections.emptyMap();
other.peripherals = Map.of();
peripherals.putAll(otherPeripherals);
if (!thisPeripherals.isEmpty()) {
@ -216,7 +216,7 @@ final class WiredNetworkImpl implements WiredNetwork {
try {
// We special case the original node: detaching all peripherals when needed.
wired.network = wiredNetwork;
wired.peripherals = Collections.emptyMap();
wired.peripherals = Map.of();
// Ensure every network is finalised
for (var network : maximals) {
@ -332,7 +332,7 @@ final class WiredNetworkImpl implements WiredNetwork {
// Detach the old peripherals then remove them from the old network
wired.network = wiredNetwork;
wired.neighbours.clear();
wired.peripherals = Collections.emptyMap();
wired.peripherals = Map.of();
// Broadcast the change
if (!peripherals.isEmpty()) WiredNetworkChangeImpl.removed(peripherals).broadcast(wired);

View File

@ -89,7 +89,7 @@ public final class CommandComputerCraft {
RequiredArgumentBuilder.<CommandSourceStack, ComputersArgumentType.ComputersSupplier>argument("computer", manyComputers())
.suggests((context, builder) -> Suggestions.empty())
)
.argManyValue("args", StringArgumentType.string(), Collections.emptyList())
.argManyValue("args", StringArgumentType.string(), List.of())
.executes((c, a) -> queue(getComputersArgument(c, "computer"), a)))
.then(command("view")
@ -300,7 +300,7 @@ public final class CommandComputerCraft {
return 1;
}
private static final List<AggregatedMetric> DEFAULT_FIELDS = Arrays.asList(
private static final List<AggregatedMetric> DEFAULT_FIELDS = List.of(
new AggregatedMetric(Metrics.COMPUTER_TASKS, Aggregate.COUNT),
new AggregatedMetric(Metrics.COMPUTER_TASKS, Aggregate.NONE),
new AggregatedMetric(Metrics.COMPUTER_TASKS, Aggregate.AVG)

View File

@ -32,7 +32,7 @@ public final class ComputersArgumentType implements ArgumentType<ComputersArgume
private static final ComputersArgumentType MANY = new ComputersArgumentType(false);
private static final ComputersArgumentType SOME = new ComputersArgumentType(true);
private static final List<String> EXAMPLES = Arrays.asList(
private static final List<String> EXAMPLES = List.of(
"0", "#0", "@Label", "~Advanced"
);
@ -75,7 +75,7 @@ public final class ComputersArgumentType implements ArgumentType<ComputersArgume
var instance = reader.readInt();
computers = s -> {
var computer = ServerContext.get(s.getServer()).registry().get(instance);
return computer == null ? Collections.emptyList() : Collections.singletonList(computer);
return computer == null ? List.of() : List.of(computer);
};
}

View File

@ -15,7 +15,6 @@ import net.minecraft.commands.CommandSourceStack;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
import java.util.function.Supplier;
@ -63,7 +62,7 @@ public class CommandBuilder<S> implements CommandNodeBuilder<S, Command<S>> {
}
public <T> CommandNodeBuilder<S, ArgCommand<S, List<T>>> argManyValue(String name, ArgumentType<T> type, T defaultValue) {
return argManyValue(name, type, Collections.singletonList(defaultValue));
return argManyValue(name, type, List.of(defaultValue));
}
public <T> CommandNodeBuilder<S, ArgCommand<S, List<T>>> argMany(String name, ArgumentType<T> type, Supplier<List<T>> empty) {

View File

@ -134,12 +134,12 @@ public class CommandAPI implements ILuaAPI {
public final List<String> list(IArguments args) throws LuaException {
var server = computer.getLevel().getServer();
if (server == null) return Collections.emptyList();
if (server == null) return List.of();
CommandNode<CommandSourceStack> node = server.getCommands().getDispatcher().getRoot();
for (var j = 0; j < args.count(); j++) {
var name = args.getString(j);
node = node.getChild(name);
if (!(node instanceof LiteralCommandNode)) return Collections.emptyList();
if (!(node instanceof LiteralCommandNode)) return List.of();
}
List<String> result = new ArrayList<>();

View File

@ -12,7 +12,6 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import java.util.Collections;
import java.util.Set;
/**
@ -33,7 +32,7 @@ public final class BlockNamedEntityLootCondition implements LootItemCondition {
@Override
public Set<LootContextParam<?>> getReferencedContextParams() {
return Collections.singleton(LootContextParams.BLOCK_ENTITY);
return Set.of(LootContextParams.BLOCK_ENTITY);
}
@Override

View File

@ -12,7 +12,6 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import java.util.Collections;
import java.util.Set;
/**
@ -33,7 +32,7 @@ public final class HasComputerIdLootCondition implements LootItemCondition {
@Override
public Set<LootContextParam<?>> getReferencedContextParams() {
return Collections.singleton(LootContextParams.BLOCK_ENTITY);
return Set.of(LootContextParams.BLOCK_ENTITY);
}
@Override

View File

@ -12,7 +12,6 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import java.util.Collections;
import java.util.Set;
/**
@ -33,7 +32,7 @@ public final class PlayerCreativeLootCondition implements LootItemCondition {
@Override
public Set<LootContextParam<?>> getReferencedContextParams() {
return Collections.singleton(LootContextParams.THIS_ENTITY);
return Set.of(LootContextParams.THIS_ENTITY);
}
@Override

View File

@ -9,14 +9,12 @@ import dan200.computercraft.api.upgrades.UpgradeData;
import dan200.computercraft.impl.PocketUpgrades;
import dan200.computercraft.impl.TurtleUpgrades;
import dan200.computercraft.shared.ModRegistry;
import dan200.computercraft.shared.computer.core.ComputerFamily;
import dan200.computercraft.shared.pocket.items.PocketComputerItem;
import dan200.computercraft.shared.turtle.items.TurtleItem;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;
@ -24,7 +22,6 @@ import java.util.function.Supplier;
* Utilities for recipe mod plugins (such as JEI).
*/
public final class RecipeModHelpers {
static final List<ComputerFamily> MAIN_FAMILIES = Arrays.asList(ComputerFamily.NORMAL, ComputerFamily.ADVANCED);
static final List<Supplier<TurtleItem>> TURTLES = List.of(ModRegistry.Items.TURTLE_NORMAL, ModRegistry.Items.TURTLE_ADVANCED);
static final List<Supplier<PocketComputerItem>> POCKET_COMPUTERS = List.of(ModRegistry.Items.POCKET_COMPUTER_NORMAL, ModRegistry.Items.POCKET_COMPUTER_ADVANCED);

View File

@ -114,7 +114,7 @@ public class UpgradeRecipeGenerator<T> {
// Suggest possible upgrades which can be applied to this turtle
var left = item.getUpgradeWithData(stack, TurtleSide.LEFT);
var right = item.getUpgradeWithData(stack, TurtleSide.RIGHT);
if (left != null && right != null) return Collections.emptyList();
if (left != null && right != null) return List.of();
List<T> recipes = new ArrayList<>();
var ingredient = Ingredient.of(stack);
@ -135,7 +135,7 @@ public class UpgradeRecipeGenerator<T> {
} else if (stack.getItem() instanceof PocketComputerItem) {
// Suggest possible upgrades which can be applied to this turtle
var back = PocketComputerItem.getUpgrade(stack);
if (back != null) return Collections.emptyList();
if (back != null) return List.of();
List<T> recipes = new ArrayList<>();
var ingredient = Ingredient.of(stack);
@ -148,7 +148,7 @@ public class UpgradeRecipeGenerator<T> {
} else {
// If this item is usable as an upgrade, find all possible recipes.
var upgrades = upgradeItemLookup.get(stack.getItem());
if (upgrades == null) return Collections.emptyList();
if (upgrades == null) return List.of();
List<T> recipes = null;
var multiple = false;
@ -169,7 +169,7 @@ public class UpgradeRecipeGenerator<T> {
}
}
return recipes == null ? Collections.emptyList() : Collections.unmodifiableList(recipes);
return recipes == null ? List.of() : Collections.unmodifiableList(recipes);
}
}
@ -215,7 +215,7 @@ public class UpgradeRecipeGenerator<T> {
return Collections.unmodifiableList(recipes);
} else {
return Collections.emptyList();
return List.of();
}
}

View File

@ -22,7 +22,7 @@ import mezz.jei.api.runtime.IJeiRuntime;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import java.util.Collections;
import java.util.List;
@JeiPlugin
public class JEIComputerCraft implements IModPlugin {
@ -61,7 +61,7 @@ public class JEIComputerCraft implements IModPlugin {
var category = registry.createRecipeLookup(RecipeTypes.CRAFTING);
category.get().forEach(wrapper -> {
if (RecipeModHelpers.shouldRemoveRecipe(wrapper.getId())) {
registry.hideRecipes(RecipeTypes.CRAFTING, Collections.singleton(wrapper));
registry.hideRecipes(RecipeTypes.CRAFTING, List.of(wrapper));
}
});
}

View File

@ -15,7 +15,6 @@ import mezz.jei.api.recipe.category.IRecipeCategory;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.CraftingRecipe;
import java.util.Collections;
import java.util.List;
class RecipeResolver implements IRecipeManagerPlugin {
@ -24,36 +23,36 @@ class RecipeResolver implements IRecipeManagerPlugin {
@Override
public <V> List<RecipeType<?>> getRecipeTypes(IFocus<V> focus) {
var value = focus.getTypedValue().getIngredient();
if (!(value instanceof ItemStack stack)) return Collections.emptyList();
if (!(value instanceof ItemStack stack)) return List.of();
return switch (focus.getRole()) {
case INPUT ->
stack.getItem() instanceof TurtleItem || stack.getItem() instanceof PocketComputerItem || resolver.isUpgrade(stack)
? Collections.singletonList(RecipeTypes.CRAFTING)
: Collections.emptyList();
? List.of(RecipeTypes.CRAFTING)
: List.of();
case OUTPUT -> stack.getItem() instanceof TurtleItem || stack.getItem() instanceof PocketComputerItem
? Collections.singletonList(RecipeTypes.CRAFTING)
: Collections.emptyList();
default -> Collections.emptyList();
? List.of(RecipeTypes.CRAFTING)
: List.of();
default -> List.of();
};
}
@Override
public <T, V> List<T> getRecipes(IRecipeCategory<T> recipeCategory, IFocus<V> focus) {
if (!(focus.getTypedValue().getIngredient() instanceof ItemStack stack) || recipeCategory.getRecipeType() != RecipeTypes.CRAFTING) {
return Collections.emptyList();
return List.of();
}
return switch (focus.getRole()) {
case INPUT -> cast(resolver.findRecipesWithInput(stack));
case OUTPUT -> cast(resolver.findRecipesWithOutput(stack));
default -> Collections.emptyList();
default -> List.of();
};
}
@Override
public <T> List<T> getRecipes(IRecipeCategory<T> recipeCategory) {
return Collections.emptyList();
return List.of();
}
@SuppressWarnings({ "unchecked", "rawtypes" })

View File

@ -30,7 +30,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.Map;
import java.util.Objects;
public class CableBlockEntity extends BlockEntity {
@ -274,7 +274,7 @@ public class CableBlockEntity extends BlockEntity {
if (!canAttachPeripheral() && peripheralAccessAllowed) {
peripheralAccessAllowed = false;
peripheral.detach();
node.updatePeripherals(Collections.emptyMap());
node.updatePeripherals(Map.of());
setChanged();
updateBlockState();
}
@ -291,7 +291,7 @@ public class CableBlockEntity extends BlockEntity {
peripheral.detach();
peripheralAccessAllowed = false;
node.updatePeripherals(Collections.emptyMap());
node.updatePeripherals(Map.of());
}
updateBlockState();

View File

@ -240,14 +240,14 @@ public class WiredModemFullBlockEntity extends BlockEntity {
peripheralAccessAllowed = false;
for (var peripheral : peripherals) peripheral.detach();
node.updatePeripherals(Collections.emptyMap());
node.updatePeripherals(Map.of());
}
updateBlockState();
}
private Set<String> getConnectedPeripheralNames() {
if (!peripheralAccessAllowed) return Collections.emptySet();
if (!peripheralAccessAllowed) return Set.of();
Set<String> peripherals = new HashSet<>(6);
for (var peripheral : this.peripherals) {
@ -258,7 +258,7 @@ public class WiredModemFullBlockEntity extends BlockEntity {
}
private Map<String, IPeripheral> getConnectedPeripherals() {
if (!peripheralAccessAllowed) return Collections.emptyMap();
if (!peripheralAccessAllowed) return Map.of();
Map<String, IPeripheral> peripherals = new HashMap<>(6);
for (var peripheral : this.peripherals) peripheral.extendMap(peripherals);

View File

@ -103,7 +103,7 @@ public final class WiredModemLocalPeripheral {
public Map<String, IPeripheral> toMap() {
return peripheral == null
? Collections.emptyMap()
? Map.of()
: Collections.singletonMap(type + "_" + id, peripheral);
}

View File

@ -68,7 +68,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements Wi
@Override
public Set<String> getAdditionalTypes() {
return Collections.singleton("peripheral_hub");
return Set.of("peripheral_hub");
}
//region Peripheral methods
@ -88,7 +88,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements Wi
@LuaFunction
public final Collection<String> getNamesRemote(IComputerAccess computer) {
var wrappers = getWrappers(computer);
return wrappers == null ? Collections.emptySet() : wrappers.keySet();
return wrappers == null ? Set.of() : wrappers.keySet();
}
/**

View File

@ -107,7 +107,7 @@ public class PocketServerComputer extends ServerComputer implements IPocketAcces
@Override
@Deprecated(forRemoval = true)
public Map<ResourceLocation, IPeripheral> getUpgrades() {
return upgrade == null ? Collections.emptyMap() : Collections.singletonMap(upgrade.getUpgradeID(), getPeripheral(ComputerSide.BACK));
return upgrade == null ? Map.of() : Collections.singletonMap(upgrade.getUpgradeID(), getPeripheral(ComputerSide.BACK));
}
public @Nullable UpgradeData<IPocketUpgrade> getUpgrade() {

View File

@ -70,7 +70,7 @@ public class TurtleInventoryCrafting implements CraftingContainer {
if (recipe == null) return null;
// Special case: craft(0) just returns an empty list if crafting was possible
if (maxCount == 0) return Collections.emptyList();
if (maxCount == 0) return List.of();
var player = TurtlePlayer.get(turtle).player();

View File

@ -20,7 +20,6 @@ import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@ -38,7 +37,7 @@ public final class NBTUtil {
try {
var ctor = CompoundTag.class.getDeclaredConstructor(Map.class);
ctor.setAccessible(true);
EMPTY_TAG = ctor.newInstance(Collections.emptyMap());
EMPTY_TAG = ctor.newInstance(Map.of());
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}

View File

@ -16,7 +16,6 @@ import org.hamcrest.Matcher;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -110,7 +109,7 @@ public class UploadFileMessageTest {
@Provide
Arbitrary<FileUpload> fileUpload() {
return Combinators.combine(
Arbitraries.oneOf(Arrays.asList(
Arbitraries.oneOf(List.of(
// 1.16 doesn't correctly handle unicode file names. We'll be generous in our tests here.
Arbitraries.strings().ofMinLength(1).ascii().ofMaxLength(MAX_FILE_NAME),
Arbitraries.strings().ofMinLength(1).ofMaxLength(MAX_FILE_NAME / 4)

View File

@ -52,8 +52,8 @@ public class JsonDump {
inputs[pos] = itemIds;
}
private static final Set<Item> canonicalItem = new HashSet<>(Arrays.asList(
private static final Set<Item> canonicalItem = Set.of(
Items.GLASS_PANE, Items.STONE, Items.CHEST
));
);
}
}

View File

@ -35,7 +35,7 @@ class Monitor_Test {
val toSet = BlockInput(
ModRegistry.Blocks.MONITOR_ADVANCED.get().defaultBlockState(),
Collections.emptySet(),
emptySet(),
tag,
)

View File

@ -7,7 +7,6 @@ package dan200.computercraft.api.peripheral;
import dan200.computercraft.api.lua.LuaFunction;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.Set;
/**
@ -35,7 +34,7 @@ public interface IPeripheral {
* @see PeripheralType#getAdditionalTypes()
*/
default Set<String> getAdditionalTypes() {
return Collections.emptySet();
return Set.of();
}
/**

View File

@ -6,7 +6,6 @@ package dan200.computercraft.api.peripheral;
import javax.annotation.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
/**
@ -16,7 +15,7 @@ import java.util.Set;
* lexicographically smallest non-empty name being chosen.
*/
public final class PeripheralType {
private static final PeripheralType UNTYPED = new PeripheralType(null, Collections.emptySet());
private static final PeripheralType UNTYPED = new PeripheralType(null, Set.of());
private final @Nullable String type;
private final Set<String> additionalTypes;
@ -46,7 +45,7 @@ public final class PeripheralType {
*/
public static PeripheralType ofType(String type) {
checkTypeName("type cannot be null or empty");
return new PeripheralType(type, Collections.emptySet());
return new PeripheralType(type, Set.of());
}
/**
@ -118,8 +117,8 @@ public final class PeripheralType {
}
private static Set<String> getTypes(Collection<String> types) {
if (types.isEmpty()) return Collections.emptySet();
if (types.size() == 1) return Collections.singleton(types.iterator().next());
if (types.isEmpty()) return Set.of();
if (types.size() == 1) return Set.of(types.iterator().next());
return Set.copyOf(types);
}
}

View File

@ -18,7 +18,6 @@ import io.netty.handler.codec.http.HttpHeaderNames;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpMethod;
import java.util.Collections;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
@ -83,7 +82,7 @@ public class HTTPAPI implements ILuaAPI {
var options = args.getTable(0);
address = getStringField(options, "url");
postString = optStringField(options, "body", null);
headerTable = optTableField(options, "headers", Collections.emptyMap());
headerTable = optTableField(options, "headers", Map.of());
binary = optBooleanField(options, "binary", false);
requestMethod = optStringField(options, "method", null);
redirect = optBooleanField(options, "redirect", true);
@ -92,7 +91,7 @@ public class HTTPAPI implements ILuaAPI {
// Get URL and post information
address = args.getString(0);
postString = args.optString(1, null);
headerTable = args.optTable(2, Collections.emptyMap());
headerTable = args.optTable(2, Map.of());
binary = args.optBoolean(3, false);
requestMethod = null;
redirect = true;
@ -154,11 +153,11 @@ public class HTTPAPI implements ILuaAPI {
if (args.get(0) instanceof Map) {
var options = args.getTable(0);
address = getStringField(options, "url");
headerTable = optTableField(options, "headers", Collections.emptyMap());
headerTable = optTableField(options, "headers", Map.of());
timeoutArg = optRealField(options, "timeout");
} else {
address = args.getString(0);
headerTable = args.optTable(1, Collections.emptyMap());
headerTable = args.optTable(1, Map.of());
timeoutArg = Optional.empty();
}

View File

@ -12,7 +12,7 @@ import dan200.computercraft.core.apis.handles.EncodedReadableHandle;
import dan200.computercraft.core.apis.handles.HandleGeneric;
import dan200.computercraft.core.methods.ObjectSource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
@ -74,6 +74,6 @@ public class HttpResponseHandle implements ObjectSource {
@Override
public Iterable<Object> getExtra() {
return Collections.singletonList(reader);
return List.of(reader);
}
}

View File

@ -9,7 +9,7 @@ import dan200.computercraft.core.apis.handles.BinaryReadableHandle;
import dan200.computercraft.core.methods.ObjectSource;
import java.nio.channels.SeekableByteChannel;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
/**
@ -42,6 +42,6 @@ public class TransferredFile implements ObjectSource {
@Override
public Iterable<Object> getExtra() {
return Collections.singleton(handle);
return List.of(handle);
}
}

View File

@ -12,7 +12,6 @@ import dan200.computercraft.core.apis.ComputerAccess;
import dan200.computercraft.core.apis.IAPIEnvironment;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.Map;
/**
@ -43,7 +42,7 @@ public class ComputerSystem extends ComputerAccess implements IComputerSystem {
@Override
public Map<String, IPeripheral> getAvailablePeripherals() {
// TODO: Should this return peripherals on the current computer?
return Collections.emptyMap();
return Map.of();
}
@Nullable

View File

@ -14,7 +14,6 @@ import java.nio.channels.SeekableByteChannel;
import java.nio.file.FileSystemException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@ -22,7 +21,7 @@ import java.util.Set;
* A {@link Mount} implementation which provides read-only access to a directory.
*/
public class FileMount implements Mount {
private static final Set<OpenOption> READ_OPTIONS = Collections.singleton(StandardOpenOption.READ);
private static final Set<OpenOption> READ_OPTIONS = Set.of(StandardOpenOption.READ);
protected final Path root;

View File

@ -195,7 +195,7 @@ public class ComputerTestDelegate {
DynamicNodeBuilder(String name, String path, Executable executor) {
this.name = name;
this.uri = getUri(path);
this.children = Collections.emptyMap();
this.children = Map.of();
this.executor = executor;
}
@ -295,7 +295,7 @@ public class ComputerTestDelegate {
@LuaFunction
public final Collection<String> getNamesRemote() {
return Collections.singleton("remote_1");
return List.of("remote_1");
}
@LuaFunction
@ -315,7 +315,7 @@ public class ComputerTestDelegate {
@LuaFunction
public final Object[] getMethodsRemote(String name) {
return name.equals("remote_1") ? new Object[]{ Collections.singletonList("func") } : null;
return name.equals("remote_1") ? new Object[]{ List.of("func") } : null;
}
}

View File

@ -10,7 +10,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import java.net.InetSocketAddress;
import java.util.Collections;
import java.util.List;
import java.util.OptionalInt;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class AddressRuleTest {
@Test
public void matchesPort() {
Iterable<AddressRule> rules = Collections.singletonList(AddressRule.parse(
Iterable<AddressRule> rules = List.of(AddressRule.parse(
"127.0.0.1", OptionalInt.of(8080),
Action.ALLOW.toPartial()
));

View File

@ -14,7 +14,7 @@ import dan200.computercraft.core.methods.ObjectSource;
import org.junit.jupiter.api.Test;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
@ -169,7 +169,7 @@ public class MethodTest {
@Override
public Iterable<Object> getExtra() {
return Collections.singletonList(new GeneratorTest.Basic());
return List.of(new GeneratorTest.Basic());
}
}

View File

@ -10,7 +10,7 @@ import net.jqwik.api.arbitraries.SizableArbitrary;
import javax.annotation.Nullable;
import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Spliterators;
import java.util.function.Consumer;
@ -74,7 +74,7 @@ public final class ArbitraryByteBuffer implements SizableArbitrary<ByteBuffer> {
@Override
public EdgeCases<ByteBuffer> edgeCases(int maxEdgeCases) {
return EdgeCases.fromSuppliers(Arrays.asList(
return EdgeCases.fromSuppliers(List.of(
() -> new ShrinkableBuffer(allocateRandom(minSize, new Random()), minSize),
() -> new ShrinkableBuffer(allocateRandom(getMaxSize(), new Random()), minSize)
));

View File

@ -74,7 +74,7 @@ public class MethodReflection {
.build(CacheLoader.from(Internal::getMethodsImpl));
private static final StaticGenerator<LuaMethod> GENERATOR = new StaticGenerator<>(
LuaMethod.class, Collections.singletonList(ILuaContext.class), Internal::createClass
LuaMethod.class, List.of(ILuaContext.class), Internal::createClass
);
static List<NamedMethod<ReflectClass<LuaMethod>>> getMethods(Class<?> klass) {