use of com.zhan_dui.utils.m3u8.Element in project pcgen by PCGen.
the class NameGenPanel method loadRuleSet.
private RuleSet loadRuleSet(Element ruleSet) throws DataConversionException {
RuleSet rs = new RuleSet(allVars, ruleSet.getAttributeValue("title"), ruleSet.getAttributeValue("id"), ruleSet.getAttributeValue("usage"));
java.util.List<?> elements = ruleSet.getChildren();
ListIterator<?> elementsIterator = elements.listIterator();
int num = 0;
while (elementsIterator.hasNext()) {
Element child = (Element) elementsIterator.next();
String elementName = child.getName();
if (elementName.equals("CATEGORY")) {
loadCategory(child, rs);
} else if (elementName.equals("RULE")) {
rs.add(loadRule(child, rs.getId() + num));
}
num++;
}
return rs;
}
use of com.zhan_dui.utils.m3u8.Element in project pcgen by PCGen.
the class NameGenPanel method loadRule.
private String loadRule(Element rule, String id) throws DataConversionException {
Rule dataRule = new Rule(allVars, id, id, rule.getAttribute("weight").getIntValue());
java.util.List<?> elements = rule.getChildren();
for (final Object element : elements) {
Element child = (Element) element;
String elementName = child.getName();
if (elementName.equals("GETLIST")) {
String listId = child.getAttributeValue("idref");
dataRule.add(listId);
} else if (elementName.equals("SPACE")) {
SpaceRule sp = new SpaceRule();
allVars.addDataElement(sp);
dataRule.add(sp.getId());
} else if (elementName.equals("HYPHEN")) {
HyphenRule hy = new HyphenRule();
allVars.addDataElement(hy);
dataRule.add(hy.getId());
} else if (elementName.equals("CR")) {
CRRule cr = new CRRule();
allVars.addDataElement(cr);
dataRule.add(cr.getId());
} else if (elementName.equals("GETRULE")) {
String ruleId = child.getAttributeValue("idref");
dataRule.add(ruleId);
}
}
allVars.addDataElement(dataRule);
return dataRule.getId();
}
use of com.zhan_dui.utils.m3u8.Element in project pcgen by PCGen.
the class DiceBagModel method loadFromDocument.
/**
* <p>Loads the dicebag data from the specified jdom document.</p>
*
* @param doc A JDOM document.
*/
private void loadFromDocument(Document doc) {
m_dice.clear();
Element root = doc.getRootElement();
if (root.getName().equals("dice-bag")) {
m_name = root.getAttributeValue("name");
List children = root.getChildren("dice-roll");
for (Iterator i = children.iterator(); i.hasNext(); ) {
Element die = (Element) i.next();
m_dice.add(die.getTextNormalize());
}
}
}
use of com.zhan_dui.utils.m3u8.Element in project pcgen by PCGen.
the class Initiative method loadFromDocument.
/**
* Loads a character or party from an XML document
*
*@param character XML document containing a character or a party
* @param comp
*/
private void loadFromDocument(Document character, PCGenMessageHandler comp) {
if (character.getRootElement().getName().equals("Party")) {
Element party = character.getRootElement();
List xmlList = party.getChildren("Character");
for (Object aXmlList : xmlList) {
Element eCharacter = (Element) aXmlList;
InitHolder combatant = new XMLCombatant(eCharacter);
initList.add(combatant);
}
List pcgList = party.getChildren("PcgCombatant");
for (Object aPcgList : pcgList) {
Element eCharacter = (Element) aPcgList;
final PcgCombatant combatant = new PcgCombatant(eCharacter, comp, messageHandler);
initList.add(combatant);
addTab(combatant);
}
List eventList = party.getChildren("Event");
for (Object anEventList : eventList) {
Element eCharacter = (Element) anEventList;
InitHolder combatant = new Event(eCharacter);
initList.add(combatant);
}
List spellList = party.getChildren("Spell");
for (Object aSpellList : spellList) {
Element eCharacter = (Element) aSpellList;
InitHolder combatant = new Spell(eCharacter);
initList.add(combatant);
}
initList.calculateNumberField();
} else if (character.getRootElement().getName().equals("Character")) {
Element eCharacter = character.getRootElement();
InitHolder combatant = new XMLCombatant(eCharacter);
initList.add(combatant);
}
}
use of com.zhan_dui.utils.m3u8.Element in project pcgen by PCGen.
the class TravelMethodFactory method create.
public static TravelMethod create(Document methodSet) {
Localized name;
Map<String, Map<String, Combo>> multByRoadByTerrains;
Map<String, List<Localized>> terrains2;
Map<String, Map<Localized, String>> terrainsById2;
Map<String, List<Localized>> routes2;
Map<String, Map<Localized, String>> routesById2;
List<Method> methods;
Element travel = methodSet.getRootElement();
NumberFormat nf = getNumberFormat(travel);
name = new Localized(travel);
multByRoadByTerrains = new HashMap<>();
terrains2 = new HashMap<>();
terrainsById2 = new HashMap<>();
routes2 = new HashMap<>();
routesById2 = new HashMap<>();
methods = new ArrayList<>();
for (Object methodObj : travel.getChildren()) {
Element child = (Element) methodObj;
if (child.getName().equals(XML_ELEMENT_WAY)) {
String wayId = child.getAttributeValue(XML_ATTRIBUTE_ID);
List<Localized> terrains = new ArrayList<>();
terrains2.put(wayId, terrains);
List<Localized> routes = new ArrayList<>();
routes2.put(wayId, routes);
Map<Localized, String> terrainsById = new HashMap<>();
terrainsById2.put(wayId, terrainsById);
Map<Localized, String> routesById = new HashMap<>();
routesById2.put(wayId, routesById);
for (Object o : child.getChildren()) {
if (o instanceof Element) {
Element grandchild = (Element) o;
if (grandchild.getName().equals(XML_ELEMENT_TERRAIN)) {
String id = grandchild.getAttributeValue(XML_ATTRIBUTE_ID);
Localized terrain = new Localized(grandchild);
terrains.add(terrain);
terrainsById.put(terrain, id);
if (!multByRoadByTerrains.containsKey(id)) {
multByRoadByTerrains.put(id, new TreeMap<>());
}
} else if (grandchild.getName().equals(XML_ELEMENT_ROUTE)) {
String id = grandchild.getAttributeValue(XML_ATTRIBUTE_ID);
Localized route = new Localized(grandchild);
routes.add(route);
routesById.put(route, id);
for (Object gcc : grandchild.getChildren(XML_ELEMENT_COMBO)) {
if (gcc instanceof Element) {
Element grandgrandchild = (Element) gcc;
String idTerrain = grandgrandchild.getAttributeValue(XML_ELEMENT_TERRAIN);
Number mult = parseNumber(nf, grandgrandchild, XML_ATTRIBUTE_MULT, 1);
Number addMph = parseNumber(nf, grandgrandchild, XML_ATTRIBUTE_ADDMPH, 0);
Number addKmh = parseNumber(nf, grandgrandchild, XML_ATTRIBUTE_ADDKMH, 0);
if (!multByRoadByTerrains.containsKey(idTerrain)) {
multByRoadByTerrains.put(idTerrain, new TreeMap<>());
}
multByRoadByTerrains.get(idTerrain).put(id, new Combo(mult, addMph, addKmh));
}
}
}
}
}
// Sort the terrains by locale name
// TODO sort, but with one that do toString on the object. Collections.sort(terrains, Collator.getInstance());
// not sorting routes intentionally (it goes from easier to navigate to hardest)
} else if (child.getName().equals(XML_ELEMENT_METHOD)) {
String way = child.getAttributeValue(XML_ELEMENT_WAY);
Method method = new Method(new Localized(child), way);
methods.add(method);
for (Object o : child.getChildren()) {
if (o instanceof Element) {
Element grandchild = (Element) o;
if (grandchild.getName().equals(XML_ELEMENT_PACE)) {
Localized pace = new Localized(grandchild);
boolean useDays = Boolean.parseBoolean(grandchild.getAttributeValue(XML_ATTRIBUTE_DAYS));
Localized comment = new Localized(grandchild, XML_ATTRIBUTE_COMMENT);
Number mult = parseNumber(nf, grandchild, XML_ATTRIBUTE_MULT, 1);
Pace newPace = new Pace(pace, comment, useDays, mult);
method.add(newPace);
}
if (grandchild.getName().equals(XML_ELEMENT_CHOOSE_FROM)) {
// XXX other default?
Number kmh = parseNumber(nf, grandchild, XML_ATTRIBUTE_KMH, 0.75);
// XXX other default?
Number mph = parseNumber(nf, grandchild, XML_ATTRIBUTE_MPH, 0.5);
// XXX other default?
Number hoursInDay = parseNumber(nf, grandchild, XML_ATTRIBUTE_HOURSINDAY, 24);
for (Object o2 : grandchild.getChildren(XML_ELEMENT_CHOICE)) {
if (o2 instanceof Element) {
Element grandgrandchild = (Element) o2;
Localized choiceName = new Localized(grandgrandchild);
Number mult = parseNumber(nf, grandgrandchild, XML_ATTRIBUTE_MULT, 1);
Choice c = new Choice(choiceName, hoursInDay, mult.doubleValue() * kmh.doubleValue(), mult.doubleValue() * mph.doubleValue());
method.add(c);
}
}
}
}
}
}
}
return new TravelMethodImplementation(name, multByRoadByTerrains, terrains2, terrainsById2, routes2, routesById2, methods);
}
Aggregations