package forge;
import java.util.ArrayList;
import java.util.HashMap;
/**
* <p>SetInfoUtil class.</p>
*
* @author Forge
* @version $Id: $
*/
public class SetInfoUtil {
/** Constant <code>setData</code> */
private static ArrayList<HashMap<String, String>> setData = new ArrayList<HashMap<String, String>>();
/**
* <p>loadSetData.</p>
*/
private static void loadSetData() {
ArrayList<String> fData = FileUtil.readFile("res/blockdata/setdata.txt");
if (fData.size() > 0) {
for (int i = 0; i < fData.size(); i++) {
String s = fData.get(i);
if (s.length() > 5) {
HashMap<String, String> sm = new HashMap<String, String>();
String ss[] = s.split("\\|");
for (int j = 0; j < ss.length; j++) {
String kv[] = ss[j].split(":");
sm.put(kv[0], kv[1]);
}
setData.add(sm);
}
}
}
}
/**
* <p>getSetCode2List.</p>
*
* @return a {@link java.util.ArrayList} object.
*/
public static ArrayList<String> getSetCode2List() {
ArrayList<String> scl = new ArrayList<String>();
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
scl.add(setData.get(i).get("Code2"));
return scl;
}
/**
* <p>getSetCode3List.</p>
*
* @return a {@link java.util.ArrayList} object.
*/
public static ArrayList<String> getSetCode3List() {
ArrayList<String> scl = new ArrayList<String>();
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
scl.add(setData.get(i).get("Code3"));
return scl;
}
/**
* <p>getSetNameList.</p>
*
* @return a {@link java.util.ArrayList} object.
*/
public static ArrayList<String> getSetNameList() {
ArrayList<String> snl = new ArrayList<String>();
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
snl.add(setData.get(i).get("Name"));
return snl;
}
/**
* <p>getSetCode2_SetName.</p>
*
* @param SetName a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetCode2_SetName(String SetName) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Name").equals(SetName))
return setData.get(i).get("Code2");
return "";
}
/**
* <p>getSetCode3_SetName.</p>
*
* @param SetName a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetCode3_SetName(String SetName) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Name").equals(SetName))
return setData.get(i).get("Code3");
return "";
}
/**
* <p>getSetCode2_SetCode3.</p>
*
* @param SetCode3 a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetCode2_SetCode3(String SetCode3) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Code3").equals(SetCode3))
return setData.get(i).get("Code2");
return "";
}
/**
* <p>getSetCode3_SetCode2.</p>
*
* @param SetCode2 a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetCode3_SetCode2(String SetCode2) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Code2").equals(SetCode2))
return setData.get(i).get("Code3");
return "";
}
/**
* <p>getSetName_SetCode2.</p>
*
* @param SetCode2 a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetName_SetCode2(String SetCode2) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Code2").equals(SetCode2))
return setData.get(i).get("Name");
return "";
}
/**
* <p>getSetName_SetCode3.</p>
*
* @param SetCode3 a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getSetName_SetCode3(String SetCode3) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++)
if (setData.get(i).get("Code3").equals(SetCode3))
return setData.get(i).get("Name");
return "";
}
/**
* <p>getMostRecentSet.</p>
*
* @param alSI a {@link java.util.ArrayList} object.
* @return a {@link java.lang.String} object.
*/
public static String getMostRecentSet(ArrayList<SetInfo> alSI) {
if (setData.size() == 0)
loadSetData();
int mostRecent = -1;
for (int i = 0; i < alSI.size(); i++) {
SetInfo s = alSI.get(i);
for (int j = 0; j < setData.size(); j++) {
if (setData.get(j).get("Code3").equals(s.Code)) {
if (j > mostRecent) {
mostRecent = j;
break;
}
}
}
}
if (mostRecent > -1)
return setData.get(mostRecent).get("Code3");
return "";
}
/**
* <p>getSetInfo_Code.</p>
*
* @param SetList a {@link java.util.ArrayList} object.
* @param SetCode a {@link java.lang.String} object.
* @return a {@link forge.SetInfo} object.
*/
public static SetInfo getSetInfo_Code(ArrayList<SetInfo> SetList, String SetCode) {
SetInfo si;
for (int i = 0; i < SetList.size(); i++) {
si = SetList.get(i);
if (si.Code.equals(SetCode))
return si;
}
return null;
}
/**
* <p>getSetIndex.</p>
*
* @param SetCode a {@link java.lang.String} object.
* @return a int.
*/
public static int getSetIndex(String SetCode) {
if (setData.size() == 0)
loadSetData();
for (int i = 0; i < setData.size(); i++) {
if (setData.get(i).get("Code3").equals(SetCode))
return Integer.parseInt(setData.get(i).get("Index"));
}
return 0;
}
/** Constant <code>blockData</code> */
private static ArrayList<HashMap<String, String>> blockData = new ArrayList<HashMap<String, String>>();
/**
* <p>loadBlockData.</p>
*/
private static void loadBlockData() {
ArrayList<String> fData = FileUtil.readFile("res/blockdata/blocks.txt");
if (fData.size() > 0) {
for (int i = 0; i < fData.size(); i++) {
String s = fData.get(i);
if (s.length() > 5) {
HashMap<String, String> sm = new HashMap<String, String>();
String ss[] = s.split("\\|");
for (int j = 0; j < ss.length; j++) {
String kv[] = ss[j].split(":");
sm.put(kv[0], kv[1]);
}
blockData.add(sm);
}
}
}
}
/**
* <p>getBlockNameList.</p>
*
* @return a {@link java.util.ArrayList} object.
*/
public static ArrayList<String> getBlockNameList() {
ArrayList<String> bnl = new ArrayList<String>();
if (blockData.size() == 0)
loadBlockData();
for (int i = 0; i < blockData.size(); i++)
bnl.add(blockData.get(i).get("Name"));
return bnl;
}
/**
* <p>getSets_BlockName.</p>
*
* @param blockName a {@link java.lang.String} object.
* @return a {@link java.util.ArrayList} object.
*/
public static ArrayList<String> getSets_BlockName(String blockName) {
ArrayList<String> sets = new ArrayList<String>();
if (blockData.size() == 0)
loadBlockData();
for (int i = 0; i < blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName)) {
if (blockData.get(i).containsKey("Set0"))
sets.add(blockData.get(i).get("Set0"));
if (blockData.get(i).containsKey("Set1"))
sets.add(blockData.get(i).get("Set1"));
if (blockData.get(i).containsKey("Set2"))
sets.add(blockData.get(i).get("Set2"));
}
}
return sets;
}
/**
* <p>getDraftPackCount.</p>
*
* @param blockName a {@link java.lang.String} object.
* @return a int.
*/
public static int getDraftPackCount(String blockName) {
if (blockData.size() == 0)
loadBlockData();
for (int i = 0; i < blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return Integer.parseInt(blockData.get(i).get("DraftPacks"));
}
return 0;
}
/**
* <p>getSealedPackCount.</p>
*
* @param blockName a {@link java.lang.String} object.
* @return a int.
*/
public static int getSealedPackCount(String blockName) {
if (blockData.size() == 0)
loadBlockData();
for (int i = 0; i < blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return Integer.parseInt(blockData.get(i).get("SealedPacks"));
}
return 0;
}
/**
* <p>getLandCode.</p>
*
* @param blockName a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String getLandCode(String blockName) {
if (blockData.size() == 0)
loadBlockData();
for (int i = 0; i < blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return blockData.get(i).get("LandSetCode");
}
return "M11"; // default, should never happen IRL
}
}