mirror of
https://github.com/correl/mage.git
synced 2025-04-09 17:00:09 -09:00
DB: added numerical card number field for min/max query (#8383);
This commit is contained in:
parent
23bcc9dbb5
commit
a480e10bd8
2 changed files with 10 additions and 3 deletions
Mage/src/main/java/mage/cards/repository
|
@ -40,6 +40,7 @@ public class CardCriteria {
|
||||||
private String sortBy;
|
private String sortBy;
|
||||||
private Long start;
|
private Long start;
|
||||||
private Long count;
|
private Long count;
|
||||||
|
// compare numerical card numbers (123b -> 123)
|
||||||
private int minCardNumber;
|
private int minCardNumber;
|
||||||
private int maxCardNumber;
|
private int maxCardNumber;
|
||||||
|
|
||||||
|
@ -304,12 +305,12 @@ public class CardCriteria {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minCardNumber != Integer.MIN_VALUE) {
|
if (minCardNumber != Integer.MIN_VALUE) {
|
||||||
where.ge("cardNumber", minCardNumber);
|
where.ge("cardNumberAsInt", minCardNumber);
|
||||||
clausesCount++;
|
clausesCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (maxCardNumber != Integer.MAX_VALUE) {
|
if (maxCardNumber != Integer.MAX_VALUE) {
|
||||||
where.le("cardNumber", maxCardNumber);
|
where.le("cardNumberAsInt", maxCardNumber);
|
||||||
clausesCount++;
|
clausesCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,11 @@ public class CardInfo {
|
||||||
protected String setCode;
|
protected String setCode;
|
||||||
@DatabaseField(indexName = "setCode_cardNumber_index")
|
@DatabaseField(indexName = "setCode_cardNumber_index")
|
||||||
protected String cardNumber;
|
protected String cardNumber;
|
||||||
|
/**
|
||||||
|
* Fast access to numerical card number (number without prefix/postfix: 123b -> 123)
|
||||||
|
*/
|
||||||
|
@DatabaseField(indexName = "cardNumberAsInt_index")
|
||||||
|
protected int cardNumberAsInt;
|
||||||
@DatabaseField(indexName = "className_index")
|
@DatabaseField(indexName = "className_index")
|
||||||
protected String className;
|
protected String className;
|
||||||
@DatabaseField
|
@DatabaseField
|
||||||
|
@ -124,6 +129,7 @@ public class CardInfo {
|
||||||
this.name = card.getName();
|
this.name = card.getName();
|
||||||
this.lower_name = name.toLowerCase(Locale.ENGLISH);
|
this.lower_name = name.toLowerCase(Locale.ENGLISH);
|
||||||
this.cardNumber = card.getCardNumber();
|
this.cardNumber = card.getCardNumber();
|
||||||
|
this.cardNumberAsInt = CardUtil.parseCardNumberAsInt(card.getCardNumber());
|
||||||
this.setCode = card.getExpansionSetCode();
|
this.setCode = card.getExpansionSetCode();
|
||||||
this.className = card.getClass().getCanonicalName();
|
this.className = card.getClass().getCanonicalName();
|
||||||
this.power = card.getPower().toString();
|
this.power = card.getPower().toString();
|
||||||
|
@ -424,7 +430,7 @@ public class CardInfo {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCardNumberAsInt() {
|
public int getCardNumberAsInt() {
|
||||||
return CardUtil.parseCardNumberAsInt(cardNumber);
|
return cardNumberAsInt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSplitCard() {
|
public boolean isSplitCard() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue