a minor brush up (use EnumSet instead of switch-case)

This commit is contained in:
Maxmtg
2013-06-23 08:04:41 +00:00
parent c94e8a395f
commit fa38216eaa

View File

@@ -20,6 +20,7 @@ package forge.quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -27,6 +28,7 @@ import javax.swing.JOptionPane;
import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -116,7 +118,10 @@ public class QuestUtilUnlockSets {
* *
* @return unmodifiable list, assorted sets that are not currently in the format. * @return unmodifiable list, assorted sets that are not currently in the format.
*/ */
private static final List<CardEdition> emptyEditions = Collections.unmodifiableList(new ArrayList<CardEdition>()); private static final List<CardEdition> emptyEditions = ImmutableList.<CardEdition>of();
private static final EnumSet<CardEdition.Type> unlockableSetTypes =
EnumSet.of(CardEdition.Type.CORE, CardEdition.Type.EXPANSION, CardEdition.Type.REPRINT, CardEdition.Type.STARTER);
private static List<CardEdition> getUnlockableEditions(final QuestController qData) { private static List<CardEdition> getUnlockableEditions(final QuestController qData) {
if (qData.getFormat() == null || !qData.getFormat().canUnlockSets()) { if (qData.getFormat() == null || !qData.getFormat().canUnlockSets()) {
return emptyEditions; return emptyEditions;
@@ -127,23 +132,19 @@ public class QuestUtilUnlockSets {
} }
List<CardEdition> options = new ArrayList<CardEdition>(); List<CardEdition> options = new ArrayList<CardEdition>();
// Sort current sets by index // Sort current sets by date
List<CardEdition> allowedSets = Lists.newArrayList(Iterables.transform(qData.getFormat().getAllowedSetCodes(), Singletons.getModel().getEditions().FN_EDITION_BY_CODE)); List<CardEdition> allowedSets = Lists.newArrayList(Iterables.transform(qData.getFormat().getAllowedSetCodes(), Singletons.getModel().getEditions().FN_EDITION_BY_CODE));
Collections.sort(allowedSets); Collections.sort(allowedSets);
// Sort unlockable sets by index // Sort unlockable sets by date
List<CardEdition> excludedSets = Lists.newArrayList(Iterables.transform(qData.getFormat().getLockedSets(), Singletons.getModel().getEditions().FN_EDITION_BY_CODE)); List<CardEdition> excludedSets = Lists.newArrayList(Iterables.transform(qData.getFormat().getLockedSets(), Singletons.getModel().getEditions().FN_EDITION_BY_CODE));
Collections.sort(excludedSets); Collections.sort(excludedSets);
// get a number of sets between an excluded and any included set // get a number of sets between an excluded and any included set
List<ImmutablePair<CardEdition, Long>> excludedWithDistances = new ArrayList<ImmutablePair<CardEdition, Long>>(); List<ImmutablePair<CardEdition, Long>> excludedWithDistances = new ArrayList<ImmutablePair<CardEdition, Long>>();
for (CardEdition ex : excludedSets) { for (CardEdition ex : excludedSets) {
switch (ex.getType()) { if (!unlockableSetTypes.contains(ex.getType())) // don't add non-traditional sets
case CORE: case EXPANSION: case REPRINT: case STARTER: break;
default:
// don't add non-traditional sets
continue; continue;
}
long distance = Integer.MAX_VALUE; long distance = Integer.MAX_VALUE;
for (CardEdition in : allowedSets) { for (CardEdition in : allowedSets) {
long d = Math.abs(ex.getDate().getTime() - in.getDate().getTime()); long d = Math.abs(ex.getDate().getTime() - in.getDate().getTime());