diff --git a/Mage/src/mage/cards/repository/ExpansionInfo.java b/Mage/src/mage/cards/repository/ExpansionInfo.java index db1f0e8e67a..8aec9d871ae 100644 --- a/Mage/src/mage/cards/repository/ExpansionInfo.java +++ b/Mage/src/mage/cards/repository/ExpansionInfo.java @@ -3,11 +3,10 @@ package mage.cards.repository; import com.j256.ormlite.field.DataType; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; +import java.util.Date; import mage.cards.ExpansionSet; import mage.constants.SetType; -import java.util.Date; - /** * * @author North @@ -25,6 +24,10 @@ public class ExpansionInfo { protected Date releaseDate; @DatabaseField(dataType = DataType.ENUM_STRING) protected SetType type; + @DatabaseField + protected boolean boosters; + @DatabaseField + protected boolean basicLands; public ExpansionInfo() { } @@ -35,6 +38,8 @@ public class ExpansionInfo { this.blockName = expansionSet.getBlockName(); this.releaseDate = expansionSet.getReleaseDate(); this.type = expansionSet.getSetType(); + this.boosters = expansionSet.hasBoosters(); + this.basicLands = expansionSet.hasBasicLands(); } public String getName() { @@ -56,4 +61,18 @@ public class ExpansionInfo { public SetType getType() { return type; } + + public boolean hasBoosters() { + return boosters; + } + + public boolean hasBasicLands() { + return basicLands; + } + + @Override + public String toString() { + return name; + } + } diff --git a/Mage/src/mage/cards/repository/ExpansionRepository.java b/Mage/src/mage/cards/repository/ExpansionRepository.java index bb66b60ecb6..b2d30d6d162 100644 --- a/Mage/src/mage/cards/repository/ExpansionRepository.java +++ b/Mage/src/mage/cards/repository/ExpansionRepository.java @@ -3,9 +3,10 @@ package mage.cards.repository; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.DaoManager; import com.j256.ormlite.jdbc.JdbcConnectionSource; +import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.TableUtils; - import java.io.File; import java.sql.SQLException; import java.util.ArrayList; @@ -21,7 +22,7 @@ public enum ExpansionRepository { private static final String JDBC_URL = "jdbc:sqlite:db/cards.db"; private static final String VERSION_ENTITY_NAME = "expansion"; - private static final long EXPANSION_DB_VERSION = 1; + private static final long EXPANSION_DB_VERSION = 2; private Dao expansionDao; @@ -63,6 +64,58 @@ public enum ExpansionRepository { return setCodes; } + public ExpansionInfo[] getWithBoostersSortedByReleaseDate() { + ExpansionInfo[] sets = new ExpansionInfo[0]; + try { + QueryBuilder qb = expansionDao.queryBuilder(); + qb.orderBy("releaseDate", false); + qb.where().eq("boosters", new SelectArg(true)); + List expansions = expansionDao.query(qb.prepare()); + sets = expansions.toArray(new ExpansionInfo[0]); + } catch (SQLException ex) { + } + return sets; + } + + public ExpansionInfo[] getSetsWithBasicLandsByReleaseDate() { + ExpansionInfo[] sets = new ExpansionInfo[0]; + try { + QueryBuilder qb = expansionDao.queryBuilder(); + qb.orderBy("releaseDate", false); + qb.where().eq("basicLands", new SelectArg(true)); + List expansions = expansionDao.query(qb.prepare()); + sets = expansions.toArray(new ExpansionInfo[0]); + } catch (SQLException ex) { + } + return sets; + } + + public ExpansionInfo[] getSetsFromBlock(String blockName) { + ExpansionInfo[] sets = new ExpansionInfo[0]; + try { + QueryBuilder qb = expansionDao.queryBuilder(); + qb.where().eq("blockName", new SelectArg(blockName)); + List expansions = expansionDao.query(qb.prepare()); + sets = expansions.toArray(new ExpansionInfo[0]); + } catch (SQLException ex) { + } + return sets; + } + + public ExpansionInfo getSetByCode(String setCode) { + ExpansionInfo set = null; + try { + QueryBuilder qb = expansionDao.queryBuilder(); + qb.where().eq("code", new SelectArg(setCode)); + List expansions = expansionDao.query(qb.prepare()); + if (expansions.size() > 0) { + set = expansions.get(0); + } + } catch (SQLException ex) { + } + return set; + } + public List getAll() { try { return expansionDao.queryForAll();