commit 2a96e3512fe89491bf566c3582037a22d9cd4998 parent a29bade4b15a1d458cdcb784b0ed95f3e0da9626 Author: Kevin Corvisier <git@kevincorvisier.fr> Date: Thu, 9 Jan 2025 18:48:36 +0900 Code clean-up Diffstat:
7 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/lombok.config b/lombok.config @@ -1 +1,2 @@ +lombok.copyableAnnotations += javax.validation.constraints.NotNull lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Value \ No newline at end of file diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/evaluation/WinRatioEvaluation.java b/src/main/java/fr/kevincorvisier/mtg/gdb/evaluation/WinRatioEvaluation.java @@ -33,7 +33,7 @@ import lombok.extern.slf4j.Slf4j; @Conditional(WinRatioEvaluationEnabledCondition.class) public class WinRatioEvaluation implements Evaluation { - private Collection<Deck> opponents = Collections.emptySet(); + private Collection<@NotNull Deck> opponents = Collections.emptySet(); private final MagicOnlineDeckLoader forgeUtils; private final ErrorProneCardsService errorProneCards; @@ -82,7 +82,7 @@ public class WinRatioEvaluation implements Evaluation .forEach(this::calculationWinRatio); } - private void calculationWinRatio(final Individual individual) + private void calculationWinRatio(@NotNull final Individual individual) { // Revalidate in case validation rules changes (error-prone cards) final String conformationProblem = validationService.validate(individual); diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/population/DefaultPopulation.java b/src/main/java/fr/kevincorvisier/mtg/gdb/population/DefaultPopulation.java @@ -4,16 +4,21 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; +import javax.validation.constraints.NotNull; + +import lombok.NonNull; + /* package */ class DefaultPopulation implements Population { - private final List<Individual> individuals = new ArrayList<>(); + private final List<@NotNull Individual> individuals = new ArrayList<>(); - public void addIndividual(final Individual indidual) + public void addIndividual(@NonNull @NotNull final Individual indidual) { individuals.add(indidual); } @Override + @NotNull public Individual get(final int i) { return individuals.get(i); @@ -33,13 +38,13 @@ import java.util.stream.Stream; } @Override - public Stream<Individual> parallelStream() + public Stream<@NotNull Individual> parallelStream() { return individuals.parallelStream(); } @Override - public Stream<Individual> stream() + public Stream<@NotNull Individual> stream() { return individuals.stream(); } diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/population/Individual.java b/src/main/java/fr/kevincorvisier/mtg/gdb/population/Individual.java @@ -8,6 +8,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Map.Entry; +import javax.validation.constraints.NotNull; + import org.apache.commons.lang3.StringUtils; import forge.deck.Deck; @@ -16,22 +18,22 @@ import forge.item.PaperCard; import fr.kevincorvisier.mtg.gdb.evaluation.GoldfishEvaluationContext; import fr.kevincorvisier.mtg.gdb.evaluation.WinRatioEvaluationContext; import lombok.Data; +import lombok.NonNull; @Data public class Individual { + @NonNull + @NotNull private final String name; + + @NonNull + @NotNull private final Deck deck; private GoldfishEvaluationContext goldfishContext = null; private WinRatioEvaluationContext winRatioContext = null; - public Individual(final String name, final Deck deck) - { - this.name = name; - this.deck = deck; - } - public long getFingerprint() { return ((long) deck.getMain().toString().hashCode()) << 32 | deck.getOrCreate(DeckSection.Sideboard).toString().hashCode(); diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/population/Population.java b/src/main/java/fr/kevincorvisier/mtg/gdb/population/Population.java @@ -2,11 +2,14 @@ package fr.kevincorvisier.mtg.gdb.population; import java.util.stream.Stream; +import javax.validation.constraints.NotNull; + /** * A population is a unmodifiable list of individuals that can be reordered based on their fitness */ public interface Population { + @NotNull Individual get(int i); /** @@ -16,7 +19,7 @@ public interface Population void onFitnessUpdated(); - Stream<Individual> parallelStream(); + Stream<@NotNull Individual> parallelStream(); - Stream<Individual> stream(); + Stream<@NotNull Individual> stream(); } diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/utils/RandomDeckGenerator.java b/src/main/java/fr/kevincorvisier/mtg/gdb/utils/RandomDeckGenerator.java @@ -5,6 +5,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.stream.Collectors; +import javax.validation.constraints.NotNull; + import org.springframework.stereotype.Service; import forge.deck.Deck; @@ -21,6 +23,7 @@ public class RandomDeckGenerator { private final CardPoolService cardPool; + @NotNull public Deck getRandomDeck() { final Deck deck = DeckgenUtil.getRandomColorDeck(cardPool::contains, true); diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/validation/ValidationService.java b/src/main/java/fr/kevincorvisier/mtg/gdb/validation/ValidationService.java @@ -26,7 +26,7 @@ public class ValidationService private final Collection<IndividualValidator> individualValidators; @Nullable - public String validate(final Individual child) + public String validate(@NonNull @NotNull final Individual child) { for (final IndividualValidator individualValidator : individualValidators) {