From a2b31e14fcf6b8fdbd6f734b9ca31c94c902f823 Mon Sep 17 00:00:00 2001 From: Pascal Koenig Date: Tue, 4 Oct 2011 02:03:22 +0200 Subject: [PATCH] Started re-implementing the XML build process... --- .../XmlStats/Datasource/AchievementsDS.java | 2 +- .../XmlStats/Objects/Achievement.java | 55 +++++++++++++++++++ .../XmlStats/Objects/Achievements.java | 43 +++++++++++++++ .../sockenklaus/XmlStats/Objects/Array.java | 22 ++++++++ .../XmlStats/Objects/Categories.java | 12 ++++ .../XmlStats/Objects/Category.java | 12 ++++ src/de/sockenklaus/XmlStats/Objects/Elem.java | 25 +++++++++ src/de/sockenklaus/XmlStats/Objects/Item.java | 12 ++++ .../sockenklaus/XmlStats/Objects/Items.java | 14 +++++ src/de/sockenklaus/XmlStats/Objects/User.java | 12 ++++ .../XmlStats/Objects/UserAchievement.java | 31 +++++++++++ .../XmlStats/Objects/UserAchievements.java | 38 +++++++++++++ .../sockenklaus/XmlStats/Objects/Users.java | 12 ++++ .../XmlStats/XmlWorkers/AchievementsList.java | 36 +++--------- 14 files changed, 297 insertions(+), 29 deletions(-) create mode 100644 src/de/sockenklaus/XmlStats/Objects/Achievement.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Achievements.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Array.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Categories.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Category.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Elem.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Item.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Items.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/User.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/UserAchievement.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/UserAchievements.java create mode 100644 src/de/sockenklaus/XmlStats/Objects/Users.java diff --git a/src/de/sockenklaus/XmlStats/Datasource/AchievementsDS.java b/src/de/sockenklaus/XmlStats/Datasource/AchievementsDS.java index 4626318..5e88b0c 100644 --- a/src/de/sockenklaus/XmlStats/Datasource/AchievementsDS.java +++ b/src/de/sockenklaus/XmlStats/Datasource/AchievementsDS.java @@ -49,7 +49,7 @@ public class AchievementsDS extends Datasource { PlayerAchievement pa; Achievements ach = (Achievements)XmlStatsRegistry.get("achievements"); - + if(ach.useSQL){ String location = ach.getDataFolder().getPath() + File.separator + playerName + ".txt"; File fold = new File(location); diff --git a/src/de/sockenklaus/XmlStats/Objects/Achievement.java b/src/de/sockenklaus/XmlStats/Objects/Achievement.java new file mode 100644 index 0000000..890fc6f --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Achievement.java @@ -0,0 +1,55 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import com.nidefawl.Achievements.AchievementListData; + +/** + * @author socrates + * + */ +public class Achievement extends Elem { + + private String name; + private String description; + private String category; + private String stat; + private Integer value; + private Integer maxawards; + private String commands; + private Boolean enabled; + + public Achievement(AchievementListData ach){ + this.name = ach.getName(); + this.description = ach.getDescription(); + this.category = ach.getCategory(); + this.stat = ach.getKey(); + this.value = ach.getValue(); + this.maxawards = ach.getMaxawards(); + this.commands = ach.commands.toString(); + this.enabled = ach.isEnabled(); + } + + protected Achievement(){ + + } + + public Element getXml(Document doc){ + Element result = doc.createElement("achievement"); + + result.setAttribute("enabled", this.enabled ?"true":"false"); + result.appendChild(this.addXmlChild("name", this.name, doc)); + result.appendChild(this.addXmlChild("description", this.description, doc)); + result.appendChild(this.addXmlChild("category", this.category, doc)); + result.appendChild(this.addXmlChild("stat", this.stat, doc)); + result.appendChild(this.addXmlChild("value", this.value, doc)); + result.appendChild(this.addXmlChild("maxawards", this.maxawards, doc)); + result.appendChild(this.addXmlChild("commands", this.commands, doc)); + + return result; + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Achievements.java b/src/de/sockenklaus/XmlStats/Objects/Achievements.java new file mode 100644 index 0000000..9a5a07e --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Achievements.java @@ -0,0 +1,43 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import java.util.ArrayList; +import java.util.HashMap; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import com.nidefawl.Achievements.AchievementListData; + +import de.sockenklaus.XmlStats.Datasource.AchievementsDS; + +/** + * @author socrates + * + */ +public class Achievements extends Array { + protected ArrayList childNodes; + + public Achievements(){ + AchievementsDS ads = new AchievementsDS(); + + HashMap achList = ads.getAchievementsList(); + + for(String achName : achList.keySet()){ + this.childNodes.add(new Achievement(achList.get(achName))); + } + } + + public Element getXml(Document doc){ + Element result = doc.createElement("achievements"); + result.setAttribute("count", this.getCountStr()); + + for(Achievement ach : this.childNodes){ + result.appendChild(ach.getXml(doc)); + } + + return result; + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Array.java b/src/de/sockenklaus/XmlStats/Objects/Array.java new file mode 100644 index 0000000..180f4c4 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Array.java @@ -0,0 +1,22 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import java.util.ArrayList; + +/** + * @author socrates + * + */ +public abstract class Array { + private ArrayList childNodes; + + public int getCountInt(){ + return this.childNodes.size(); + } + + public String getCountStr(){ + return String.valueOf(this.childNodes.size()); + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Categories.java b/src/de/sockenklaus/XmlStats/Objects/Categories.java new file mode 100644 index 0000000..9766c64 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Categories.java @@ -0,0 +1,12 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +/** + * @author socrates + * + */ +public class Categories extends Array { + +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Category.java b/src/de/sockenklaus/XmlStats/Objects/Category.java new file mode 100644 index 0000000..a1237ed --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Category.java @@ -0,0 +1,12 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +/** + * @author socrates + * + */ +public class Category { + +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Elem.java b/src/de/sockenklaus/XmlStats/Objects/Elem.java new file mode 100644 index 0000000..892027c --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Elem.java @@ -0,0 +1,25 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * @author socrates + * + */ +public abstract class Elem { + protected Element addXmlChild(String elemName, String text, Document doc){ + Element result = doc.createElement(elemName); + result.setTextContent(text); + return result; + } + + protected Element addXmlChild(String elemName, int value, Document doc){ + Element result = doc.createElement(elemName); + result.setTextContent(String.valueOf(value)); + return result; + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Item.java b/src/de/sockenklaus/XmlStats/Objects/Item.java new file mode 100644 index 0000000..903aa9d --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Item.java @@ -0,0 +1,12 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +/** + * @author socrates + * + */ +public class Item { + +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Items.java b/src/de/sockenklaus/XmlStats/Objects/Items.java new file mode 100644 index 0000000..a162bd7 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Items.java @@ -0,0 +1,14 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import java.util.ArrayList; + +/** + * @author socrates + * + */ +public class Items extends Array { + +} diff --git a/src/de/sockenklaus/XmlStats/Objects/User.java b/src/de/sockenklaus/XmlStats/Objects/User.java new file mode 100644 index 0000000..682685c --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/User.java @@ -0,0 +1,12 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +/** + * @author socrates + * + */ +public class User { + +} diff --git a/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java b/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java new file mode 100644 index 0000000..cb4bca6 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java @@ -0,0 +1,31 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * @author socrates + * + */ +public class UserAchievement extends Achievement { + + private String name; + private int count; + + public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){ + this.name = paName; + this.count = achievement.getCount(); + } + + public Element getXml(Document doc){ + Element result = doc.createElement("achievement"); + + result.appendChild(this.addXmlChild("name", this.name, doc)); + result.appendChild(this.addXmlChild("count", this.count, doc)); + + return result; + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java b/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java new file mode 100644 index 0000000..7697101 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java @@ -0,0 +1,38 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import com.nidefawl.Achievements.PlayerAchievement; + +import de.sockenklaus.XmlStats.Datasource.AchievementsDS; + +/** + * @author socrates + * + */ +public class UserAchievements extends Achievements { + public UserAchievements(String userName){ + AchievementsDS ads = new AchievementsDS(); + + PlayerAchievement pa = ads.getUserAchievement(userName); + + for(String paName : pa.achievements.keySet()){ + this.childNodes.add(new UserAchievement(paName, pa.get(paName))); + } + } + + public Element getXml(Document doc){ + Element result = doc.createElement("achievements"); + result.setAttribute("count", this.getCountStr()); + + for(Achievement ach : this.childNodes){ + result.appendChild(((UserAchievement)ach).getXml(doc)); + } + + return result; + } +} diff --git a/src/de/sockenklaus/XmlStats/Objects/Users.java b/src/de/sockenklaus/XmlStats/Objects/Users.java new file mode 100644 index 0000000..30d9827 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/Users.java @@ -0,0 +1,12 @@ +/** + * + */ +package de.sockenklaus.XmlStats.Objects; + +/** + * @author socrates + * + */ +public class Users extends Array { + +} diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java b/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java index 1c811d3..02bec22 100644 --- a/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java +++ b/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java @@ -56,34 +56,14 @@ public class AchievementsList extends XmlWorker { Element elem_ach = this.doc.createElement("achievement"); elem_ach.setAttribute("enabled", data.isEnabled()?"true":"false"); - Element elem_achname = this.doc.createElement("name"); - elem_achname.setTextContent(data.getName()); - elem_ach.appendChild(elem_achname); - - Element elem_achdesc = this.doc.createElement("description"); - elem_achdesc.setTextContent(data.getDescription()); - elem_ach.appendChild(elem_achdesc); - - Element elem_category = this.doc.createElement("category"); - elem_category.setTextContent(data.getCategory()); - elem_ach.appendChild(elem_category); - - Element elem_stat = this.doc.createElement("stat"); - elem_stat.setTextContent(data.getKey()); - elem_ach.appendChild(elem_stat); - - Element elem_value = this.doc.createElement("value"); - elem_value.setTextContent(String.valueOf(data.getValue())); - elem_ach.appendChild(elem_value); - - Element elem_maxawards = this.doc.createElement("maxawards"); - elem_maxawards.setTextContent(String.valueOf(data.getMaxawards())); - elem_ach.appendChild(elem_maxawards); - - Element elem_commands = this.doc.createElement("commands"); - elem_commands.setTextContent(data.commands.toString()); - elem_ach.appendChild(elem_commands); - + elem_ach.appendChild(getTextElem("name", data.getName())); + elem_ach.appendChild(getTextElem("description", data.getDescription())); + elem_ach.appendChild(getTextElem("category", data.getCategory())); + elem_ach.appendChild(getTextElem("stat", data.getKey())); + elem_ach.appendChild(getTextElem("value", data.getValue())); + elem_ach.appendChild(getTextElem("maxawards", data.getMaxawards())); + elem_ach.appendChild(getTextElem("commands", data.commands.toString())); + return elem_ach; }