mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
Some minor changes.
This commit is contained in:
parent
905fd65ebd
commit
bdaa78e144
4 changed files with 121 additions and 120 deletions
|
|
@ -13,7 +13,6 @@ import mage.cards.repository.ExpansionRepository;
|
|||
import mage.constants.SetType;
|
||||
import mage.deck.Standard;
|
||||
|
||||
|
||||
/**
|
||||
* Utility class for constructed formats (expansions and other editions).
|
||||
*
|
||||
|
|
@ -21,8 +20,6 @@ import mage.deck.Standard;
|
|||
*/
|
||||
public class ConstructedFormats {
|
||||
|
||||
private static final GregorianCalendar calendar = new GregorianCalendar();
|
||||
|
||||
public static final String ALL = "- All Sets";
|
||||
public static final String STANDARD = "- Standard";
|
||||
public static final String EXTENDED = "- Extended";
|
||||
|
|
@ -45,9 +42,9 @@ public class ConstructedFormats {
|
|||
}
|
||||
|
||||
public static List<String> getSetsByFormat(final String format) {
|
||||
if(!format.equals(ALL)) {
|
||||
if (!format.equals(ALL)) {
|
||||
return underlyingSetCodesPerFormat.get(format);
|
||||
}
|
||||
}
|
||||
return all;
|
||||
|
||||
}
|
||||
|
|
@ -62,158 +59,155 @@ public class ConstructedFormats {
|
|||
final Map<String, ExpansionInfo> expansionInfo = new HashMap<>();
|
||||
formats.clear(); // prevent NPE on sorting if this is not the first try
|
||||
for (ExpansionInfo set : ExpansionRepository.instance.getAll()) {
|
||||
expansionInfo.put(set.getName(), set);
|
||||
formats.add(set.getName());
|
||||
expansionInfo.put(set.getName(), set);
|
||||
formats.add(set.getName());
|
||||
if (set.getType().equals(SetType.CORE) || set.getType().equals(SetType.EXPANSION) || set.getType().equals(SetType.SUPPLEMENTAL_STANDARD_LEGAL)) {
|
||||
if (STANDARD_CARDS.getSetCodes().contains(set.getCode())) {
|
||||
if(underlyingSetCodesPerFormat.get(STANDARD) == null) {
|
||||
underlyingSetCodesPerFormat.put(STANDARD, new ArrayList<String>());
|
||||
if (underlyingSetCodesPerFormat.get(STANDARD) == null) {
|
||||
underlyingSetCodesPerFormat.put(STANDARD, new ArrayList<>());
|
||||
}
|
||||
underlyingSetCodesPerFormat.get(STANDARD).add(set.getCode());
|
||||
}
|
||||
if (set.getReleaseDate().after(extendedDate)) {
|
||||
if(underlyingSetCodesPerFormat.get(EXTENDED) == null) {
|
||||
underlyingSetCodesPerFormat.put(EXTENDED, new ArrayList<String>());
|
||||
if (underlyingSetCodesPerFormat.get(EXTENDED) == null) {
|
||||
underlyingSetCodesPerFormat.put(EXTENDED, new ArrayList<>());
|
||||
}
|
||||
underlyingSetCodesPerFormat.get(EXTENDED).add(set.getCode());
|
||||
}
|
||||
if (set.getReleaseDate().after(frontierDate)) {
|
||||
if(underlyingSetCodesPerFormat.get(FRONTIER) == null) {
|
||||
underlyingSetCodesPerFormat.put(FRONTIER, new ArrayList<String>());
|
||||
if (underlyingSetCodesPerFormat.get(FRONTIER) == null) {
|
||||
underlyingSetCodesPerFormat.put(FRONTIER, new ArrayList<>());
|
||||
}
|
||||
underlyingSetCodesPerFormat.get(FRONTIER).add(set.getCode());
|
||||
}
|
||||
if (set.getReleaseDate().after(modernDate)) {
|
||||
if(underlyingSetCodesPerFormat.get(MODERN) == null) {
|
||||
underlyingSetCodesPerFormat.put(MODERN, new ArrayList<String>());
|
||||
if (underlyingSetCodesPerFormat.get(MODERN) == null) {
|
||||
underlyingSetCodesPerFormat.put(MODERN, new ArrayList<>());
|
||||
}
|
||||
underlyingSetCodesPerFormat.get(MODERN).add(set.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
if(underlyingSetCodesPerFormat.get(set.getName()) == null) {
|
||||
underlyingSetCodesPerFormat.put(set.getName(), new ArrayList<String>());
|
||||
if (underlyingSetCodesPerFormat.get(set.getName()) == null) {
|
||||
underlyingSetCodesPerFormat.put(set.getName(), new ArrayList<>());
|
||||
}
|
||||
|
||||
underlyingSetCodesPerFormat.get(set.getName()).add(set.getCode());
|
||||
|
||||
if(set.getType().equals(SetType.EXPANSION) && set.getBlockName() != null) {
|
||||
String blockDisplayName = getBlockDisplayName(set.getBlockName());
|
||||
if(underlyingSetCodesPerFormat.get(blockDisplayName) == null) {
|
||||
underlyingSetCodesPerFormat.put(blockDisplayName, new ArrayList<String>());
|
||||
}
|
||||
if (set.getType().equals(SetType.EXPANSION) && set.getBlockName() != null) {
|
||||
String blockDisplayName = getBlockDisplayName(set.getBlockName());
|
||||
if (underlyingSetCodesPerFormat.get(blockDisplayName) == null) {
|
||||
underlyingSetCodesPerFormat.put(blockDisplayName, new ArrayList<>());
|
||||
}
|
||||
|
||||
underlyingSetCodesPerFormat.get(blockDisplayName).add(set.getCode());
|
||||
underlyingSetCodesPerFormat.get(blockDisplayName).add(set.getCode());
|
||||
|
||||
if(expansionInfo.get(blockDisplayName) == null) {
|
||||
expansionInfo.put(blockDisplayName, set);
|
||||
formats.add(blockDisplayName);
|
||||
}
|
||||
if (expansionInfo.get(blockDisplayName) == null) {
|
||||
expansionInfo.put(blockDisplayName, set);
|
||||
formats.add(blockDisplayName);
|
||||
}
|
||||
|
||||
if(expansionInfo.get(blockDisplayName).getReleaseDate().after(set.getReleaseDate())) {
|
||||
expansionInfo.put(blockDisplayName, set);
|
||||
}
|
||||
if (expansionInfo.get(blockDisplayName).getReleaseDate().after(set.getReleaseDate())) {
|
||||
expansionInfo.put(blockDisplayName, set);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(set.getType().equals(SetType.SUPPLEMENTAL) && set.getBlockName() != null) {
|
||||
if(expansionInfo.get(set.getBlockName()) == null) {
|
||||
expansionInfo.put(set.getBlockName(), set);
|
||||
}
|
||||
if (set.getType().equals(SetType.SUPPLEMENTAL) && set.getBlockName() != null) {
|
||||
if (expansionInfo.get(set.getBlockName()) == null) {
|
||||
expansionInfo.put(set.getBlockName(), set);
|
||||
}
|
||||
|
||||
if(expansionInfo.get(set.getBlockName()).getReleaseDate().before(set.getReleaseDate())) {
|
||||
expansionInfo.put(set.getBlockName(), set);
|
||||
}
|
||||
if (expansionInfo.get(set.getBlockName()).getReleaseDate().before(set.getReleaseDate())) {
|
||||
expansionInfo.put(set.getBlockName(), set);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(formats, new Comparator<String>() {
|
||||
|
||||
@Override
|
||||
public int compare(String name1, String name2) {
|
||||
ExpansionInfo expansionInfo1 = expansionInfo.get(name1);
|
||||
ExpansionInfo expansionInfo2 = expansionInfo.get(name2);
|
||||
@Override
|
||||
public int compare(String name1, String name2) {
|
||||
ExpansionInfo expansionInfo1 = expansionInfo.get(name1);
|
||||
ExpansionInfo expansionInfo2 = expansionInfo.get(name2);
|
||||
|
||||
if(expansionInfo1.getType().compareTo(expansionInfo2.getType()) == 0) {
|
||||
SetType setType = expansionInfo1.getType();
|
||||
if(setType.equals(SetType.EXPANSION)) {
|
||||
if (expansionInfo1.getType().compareTo(expansionInfo2.getType()) == 0) {
|
||||
SetType setType = expansionInfo1.getType();
|
||||
switch (setType) {
|
||||
case EXPANSION:
|
||||
if (expansionInfo1.getBlockName() == null) {
|
||||
if (expansionInfo2.getBlockName() == null) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
|
||||
if(expansionInfo1.getBlockName() == null) {
|
||||
if(expansionInfo2.getBlockName() == null) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
if (expansionInfo2.getBlockName() == null) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(expansionInfo2.getBlockName() == null) {
|
||||
return -1;
|
||||
}
|
||||
//Block comparison
|
||||
if (name1.endsWith("Block") && name2.endsWith("Block")) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
|
||||
//Block comparison
|
||||
if(name1.endsWith("Block") && name2.endsWith("Block")) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
if (name1.endsWith("Block")) {
|
||||
if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if(name1.endsWith("Block")) {
|
||||
if(expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (name2.endsWith("Block")) {
|
||||
if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(name2.endsWith("Block")) {
|
||||
if(expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
case SUPPLEMENTAL:
|
||||
if (expansionInfo1.getBlockName() == null) {
|
||||
if (expansionInfo2.getBlockName() == null) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
return -1;
|
||||
}
|
||||
|
||||
} else if(setType.equals(SetType.SUPPLEMENTAL)) {
|
||||
if(expansionInfo1.getBlockName() == null) {
|
||||
if(expansionInfo2.getBlockName() == null) {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
if (expansionInfo2.getBlockName() == null) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
//If release date is the same, sort alphabetically.
|
||||
if (expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()) == 0) {
|
||||
return name1.compareTo(name2);
|
||||
}
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
|
||||
if(expansionInfo2.getBlockName() == null) {
|
||||
return 1;
|
||||
}
|
||||
if (expansionInfo1.getBlockName().startsWith("Duel Decks")) {
|
||||
if (expansionInfo1.getBlockName().startsWith("Duel Decks: Anthology")) {
|
||||
return 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
if (expansionInfo2.getBlockName().startsWith("Duel Decks")) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) {
|
||||
//If release date is the same, sort alphabetically.
|
||||
if(expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()) == 0) {
|
||||
return name1.compareTo(name2);
|
||||
}
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
ExpansionInfo blockInfo1 = expansionInfo.get(expansionInfo1.getBlockName());
|
||||
ExpansionInfo blockInfo2 = expansionInfo.get(expansionInfo2.getBlockName());
|
||||
|
||||
if(expansionInfo1.getBlockName().startsWith("Duel Decks")) {
|
||||
if(expansionInfo1.getBlockName().startsWith("Duel Decks: Anthology")) {
|
||||
return 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
if(expansionInfo2.getBlockName().startsWith("Duel Decks")) {
|
||||
return -1;
|
||||
}
|
||||
return blockInfo2.getReleaseDate().compareTo(blockInfo1.getReleaseDate());
|
||||
default:
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
}
|
||||
return expansionInfo1.getType().compareTo(expansionInfo2.getType());
|
||||
}
|
||||
|
||||
ExpansionInfo blockInfo1 = expansionInfo.get(expansionInfo1.getBlockName());
|
||||
ExpansionInfo blockInfo2 = expansionInfo.get(expansionInfo2.getBlockName());
|
||||
|
||||
return blockInfo2.getReleaseDate().compareTo(blockInfo1.getReleaseDate());
|
||||
|
||||
|
||||
} else {
|
||||
return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate());
|
||||
}
|
||||
}
|
||||
return expansionInfo1.getType().compareTo(expansionInfo2.getType());
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
if (!formats.isEmpty()) {
|
||||
formats.add(0, MODERN);
|
||||
formats.add(0, FRONTIER);
|
||||
|
|
@ -224,13 +218,12 @@ public class ConstructedFormats {
|
|||
}
|
||||
|
||||
private static String getBlockDisplayName(String blockName) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("* ").append(blockName).append(" Block");
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("* ").append(blockName).append(" Block");
|
||||
|
||||
return builder.toString();
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
private static final Date extendedDate = new GregorianCalendar(2009, 8, 20).getTime();
|
||||
private static final Date frontierDate = new GregorianCalendar(2014, 7, 17).getTime();
|
||||
private static final Date modernDate = new GregorianCalendar(2003, 7, 20).getTime();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue