Refactor: added edit protection for some unmodifiable lists

This commit is contained in:
Oleg Agafonov 2023-03-25 15:22:13 +04:00
parent 1d17895caa
commit cfd7464b49
9 changed files with 22 additions and 34 deletions

View file

@ -23,7 +23,7 @@ import java.util.*;
*/ */
public final class CombatUtil { public final class CombatUtil {
private static final List<Permanent> emptyList = new ArrayList<>(); private static final List<Permanent> emptyList = Collections.unmodifiableList(new ArrayList<>());
private static final Logger log = Logger.getLogger(CombatUtil.class); private static final Logger log = Logger.getLogger(CombatUtil.class);

View file

@ -71,7 +71,7 @@ enum CodespellClericCondition implements Condition {
class CodespellClericWatcher extends Watcher { class CodespellClericWatcher extends Watcher {
private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>(); private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>();
private static final List<MageObjectReference> emptyList = new ArrayList<>(); private static final List<MageObjectReference> emptyList = Collections.unmodifiableList(new ArrayList<>());
CodespellClericWatcher() { CodespellClericWatcher() {
super(WatcherScope.GAME); super(WatcherScope.GAME);

View file

@ -57,7 +57,7 @@ public final class HotheadedGiant extends CardImpl {
class HotheadedGiantWatcher extends Watcher { class HotheadedGiantWatcher extends Watcher {
private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>(); private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>();
private static final List<MageObjectReference> emptyList = new ArrayList<>(); private static final List<MageObjectReference> emptyList = Collections.unmodifiableList(new ArrayList<>());
HotheadedGiantWatcher() { HotheadedGiantWatcher() {
super(WatcherScope.GAME); super(WatcherScope.GAME);

View file

@ -91,7 +91,7 @@ class SoulReapEffect extends OneShotEffect {
class SoulReapWatcher extends Watcher { class SoulReapWatcher extends Watcher {
private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>(); private final Map<UUID, List<MageObjectReference>> spellMap = new HashMap<>();
private static final List<MageObjectReference> emptyList = new ArrayList<>(); private static final List<MageObjectReference> emptyList = Collections.unmodifiableList(new ArrayList<>());
SoulReapWatcher() { SoulReapWatcher() {
super(WatcherScope.GAME); super(WatcherScope.GAME);

View file

@ -18,17 +18,14 @@ import mage.game.events.ZoneChangeEvent;
import mage.util.GameLog; import mage.util.GameLog;
import mage.util.SubTypes; import mage.util.SubTypes;
import java.util.ArrayList; import java.util.*;
import java.util.EnumSet;
import java.util.List;
import java.util.UUID;
/** /**
* @author LevelX2 * @author LevelX2
*/ */
public abstract class Designation implements MageObject { public abstract class Designation implements MageObject {
private static final List<CardType> emptySet = new ArrayList<>(); private static final List<CardType> emptyList = Collections.unmodifiableList(new ArrayList<>());
private static final ObjectColor emptyColor = new ObjectColor(); private static final ObjectColor emptyColor = new ObjectColor();
private static final ManaCostsImpl emptyCost = new ManaCostsImpl<>(); private static final ManaCostsImpl emptyCost = new ManaCostsImpl<>();
@ -155,7 +152,7 @@ public abstract class Designation implements MageObject {
@Override @Override
public List<CardType> getCardType(Game game) { public List<CardType> getCardType(Game game) {
return emptySet; return emptyList;
} }
@Override @Override

View file

@ -45,7 +45,7 @@ public class Dungeon implements CommandObject {
dungeonNames.add("Dungeon of the Mad Mage"); dungeonNames.add("Dungeon of the Mad Mage");
} }
private static final List<CardType> emptySet = Arrays.asList(CardType.DUNGEON); private static final List<CardType> emptyList = Collections.unmodifiableList(Arrays.asList(CardType.DUNGEON));
private static final ObjectColor emptyColor = new ObjectColor(); private static final ObjectColor emptyColor = new ObjectColor();
private static final ManaCosts<ManaCost> emptyCost = new ManaCostsImpl<>(); private static final ManaCosts<ManaCost> emptyCost = new ManaCostsImpl<>();
@ -240,7 +240,7 @@ public class Dungeon implements CommandObject {
@Override @Override
public List<CardType> getCardType(Game game) { public List<CardType> getCardType(Game game) {
return emptySet; return emptyList;
} }
@Override @Override

View file

@ -22,19 +22,16 @@ import mage.util.GameLog;
import mage.util.RandomUtil; import mage.util.RandomUtil;
import mage.util.SubTypes; import mage.util.SubTypes;
import java.util.ArrayList; import java.util.*;
import java.util.EnumSet;
import java.util.List;
import java.util.UUID;
/** /**
* @author nantuko * @author nantuko
*/ */
public class Emblem implements CommandObject { public class Emblem implements CommandObject {
private static List<CardType> emptySet = new ArrayList<>(); private static final List<CardType> emptyList = Collections.unmodifiableList(new ArrayList<>());
private static ObjectColor emptyColor = new ObjectColor(); private static final ObjectColor emptyColor = new ObjectColor();
private static ManaCosts emptyCost = new ManaCostsImpl<>(); private static final ManaCosts emptyCost = new ManaCostsImpl<>();
private String name = ""; private String name = "";
private UUID id; private UUID id;
@ -159,7 +156,7 @@ public class Emblem implements CommandObject {
@Override @Override
public List<CardType> getCardType(Game game) { public List<CardType> getCardType(Game game) {
return emptySet; return emptyList;
} }
@Override @Override

View file

@ -24,19 +24,16 @@ import mage.util.RandomUtil;
import mage.util.SubTypes; import mage.util.SubTypes;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.*;
import java.util.EnumSet;
import java.util.List;
import java.util.UUID;
/** /**
* @author spjspj * @author spjspj
*/ */
public class Plane implements CommandObject { public class Plane implements CommandObject {
private static List<CardType> emptySet = new ArrayList<>(); private static final List<CardType> emptyList = Collections.unmodifiableList(new ArrayList<>());
private static ObjectColor emptyColor = new ObjectColor(); private static final ObjectColor emptyColor = new ObjectColor();
private static ManaCosts emptyCost = new ManaCostsImpl<>(); private static final ManaCosts emptyCost = new ManaCostsImpl<>();
private Planes planeType = null; private Planes planeType = null;
private UUID id; private UUID id;
@ -158,7 +155,7 @@ public class Plane implements CommandObject {
@Override @Override
public List<CardType> getCardType(Game game) { public List<CardType> getCardType(Game game) {
return emptySet; return emptyList;
} }
@Override @Override

View file

@ -34,18 +34,15 @@ import mage.util.SubTypes;
import mage.util.functions.StackObjectCopyApplier; import mage.util.functions.StackObjectCopyApplier;
import mage.watchers.Watcher; import mage.watchers.Watcher;
import java.util.ArrayList; import java.util.*;
import java.util.EnumSet;
import java.util.List;
import java.util.UUID;
/** /**
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
*/ */
public class StackAbility extends StackObjectImpl implements Ability { public class StackAbility extends StackObjectImpl implements Ability {
private static final List<CardType> emptyCardType = new ArrayList<>(); private static final List<CardType> emptyCardType = Collections.unmodifiableList(new ArrayList<>());
private static final List<String> emptyString = new ArrayList<>(); private static final List<String> emptyString = Collections.unmodifiableList(new ArrayList<>());
private static final ObjectColor emptyColor = new ObjectColor(); private static final ObjectColor emptyColor = new ObjectColor();
private static final ManaCosts<ManaCost> emptyCost = new ManaCostsImpl<>(); private static final ManaCosts<ManaCost> emptyCost = new ManaCostsImpl<>();
private static final Costs<Cost> emptyCosts = new CostsImpl<>(); private static final Costs<Cost> emptyCosts = new CostsImpl<>();