Work on object based XML generation...
This commit is contained in:
@@ -14,23 +14,24 @@ import com.nidefawl.Achievements.AchievementListData;
|
|||||||
*/
|
*/
|
||||||
public class Achievement extends Elem {
|
public class Achievement extends Elem {
|
||||||
|
|
||||||
private String name;
|
private Elem name;
|
||||||
private String description;
|
private Elem description;
|
||||||
private String category;
|
private Elem category;
|
||||||
private String stat;
|
private Elem stat;
|
||||||
private Integer value;
|
private Elem value;
|
||||||
private Integer maxawards;
|
private Elem maxawards;
|
||||||
private String commands;
|
private Elem commands;
|
||||||
private Boolean enabled;
|
private Boolean enabled;
|
||||||
|
|
||||||
public Achievement(AchievementListData ach){
|
public Achievement(AchievementListData ach){
|
||||||
this.name = ach.getName();
|
|
||||||
this.description = ach.getDescription();
|
this.name = new Elem("name", ach.getName());
|
||||||
this.category = ach.getCategory();
|
this.description = new Elem("description", ach.getDescription());
|
||||||
this.stat = ach.getKey();
|
this.category = new Elem("category", ach.getCategory());
|
||||||
this.value = ach.getValue();
|
this.stat = new Elem("stat", ach.getKey());
|
||||||
this.maxawards = ach.getMaxawards();
|
this.value = new Elem("value", ach.getValue());
|
||||||
this.commands = ach.commands.toString();
|
this.maxawards = new Elem("maxawards", ach.getMaxawards());
|
||||||
|
this.commands = new Elem("commands", ach.commands.toString());
|
||||||
this.enabled = ach.isEnabled();
|
this.enabled = ach.isEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,14 +43,15 @@ public class Achievement extends Elem {
|
|||||||
Element result = doc.createElement("achievement");
|
Element result = doc.createElement("achievement");
|
||||||
|
|
||||||
result.setAttribute("enabled", this.enabled ?"true":"false");
|
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.name.getXml(doc));
|
||||||
result.appendChild(this.addXmlChild("category", this.category, doc));
|
result.appendChild(this.description.getXml(doc));
|
||||||
result.appendChild(this.addXmlChild("stat", this.stat, doc));
|
result.appendChild(this.category.getXml(doc));
|
||||||
result.appendChild(this.addXmlChild("value", this.value, doc));
|
result.appendChild(this.stat.getXml(doc));
|
||||||
result.appendChild(this.addXmlChild("maxawards", this.maxawards, doc));
|
result.appendChild(this.value.getXml(doc));
|
||||||
result.appendChild(this.addXmlChild("commands", this.commands, doc));
|
result.appendChild(this.maxawards.getXml(doc));
|
||||||
|
result.appendChild(this.commands.getXml(doc));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,21 +3,12 @@
|
|||||||
*/
|
*/
|
||||||
package de.sockenklaus.XmlStats.Objects;
|
package de.sockenklaus.XmlStats.Objects;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
|
||||||
import org.w3c.dom.Element;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author socrates
|
* @author socrates
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class Array {
|
public abstract class Array extends Elem{
|
||||||
protected ArrayList<Elem> childNodes;
|
|
||||||
|
|
||||||
protected Array(){
|
|
||||||
this.childNodes = new ArrayList<Elem>();
|
|
||||||
}
|
|
||||||
public int getCountInt(){
|
public int getCountInt(){
|
||||||
return this.childNodes.size();
|
return this.childNodes.size();
|
||||||
}
|
}
|
||||||
@@ -25,10 +16,4 @@ public abstract class Array {
|
|||||||
public String getCountStr(){
|
public String getCountStr(){
|
||||||
return String.valueOf(this.childNodes.size());
|
return String.valueOf(this.childNodes.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param doc
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public abstract Element getXml(Document doc);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
package de.sockenklaus.XmlStats.Objects;
|
package de.sockenklaus.XmlStats.Objects;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
@@ -11,7 +13,30 @@ import org.w3c.dom.Node;
|
|||||||
* @author socrates
|
* @author socrates
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class Elem {
|
public class Elem {
|
||||||
|
|
||||||
|
protected String textContent;
|
||||||
|
protected String elemName;
|
||||||
|
protected ArrayList<Elem> childNodes;
|
||||||
|
|
||||||
|
protected Elem(){
|
||||||
|
this.childNodes = new ArrayList<Elem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Elem(String elemName){
|
||||||
|
this();
|
||||||
|
this.elemName = elemName;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Elem(String elemName, String textContent){
|
||||||
|
this(elemName);
|
||||||
|
this.textContent = textContent;
|
||||||
|
}
|
||||||
|
protected Elem(String elemName, Integer intContent){
|
||||||
|
this(elemName);
|
||||||
|
this.textContent = intContent.toString();
|
||||||
|
}
|
||||||
|
|
||||||
protected Element addXmlChild(String elemName, String text, Document doc){
|
protected Element addXmlChild(String elemName, String text, Document doc){
|
||||||
Element result = doc.createElement(elemName);
|
Element result = doc.createElement(elemName);
|
||||||
result.setTextContent(text);
|
result.setTextContent(text);
|
||||||
@@ -28,5 +53,29 @@ public abstract class Elem {
|
|||||||
* @param doc
|
* @param doc
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public abstract Node getXml(Document doc);
|
public Element getXml(Document doc){
|
||||||
|
Element result = doc.createElement(this.elemName);
|
||||||
|
|
||||||
|
if(!this.textContent.isEmpty()) result.setTextContent(this.textContent);
|
||||||
|
|
||||||
|
for (Elem child : this.childNodes){
|
||||||
|
result.appendChild(child.getXml(doc));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTextContent(String content){
|
||||||
|
this.textContent = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addChild(Elem child){
|
||||||
|
this.childNodes.add(child);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Elem getFirstChild(){
|
||||||
|
if (this.childNodes.size() > 0) return this.childNodes.get(0);
|
||||||
|
else throw new IndexOutOfBoundsException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
25
src/de/sockenklaus/XmlStats/Objects/Item.java
Normal file
25
src/de/sockenklaus/XmlStats/Objects/Item.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package de.sockenklaus.XmlStats.Objects;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author socrates
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Item extends Elem {
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Element getXml(Document doc) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
31
src/de/sockenklaus/XmlStats/Objects/User.java
Normal file
31
src/de/sockenklaus/XmlStats/Objects/User.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package de.sockenklaus.XmlStats.Objects;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author socrates
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class User extends Elem {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public User(String name){
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Element getXml(Document doc) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,8 @@ package de.sockenklaus.XmlStats.Objects;
|
|||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
|
import de.sockenklaus.XmlStats.XmlStats;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author socrates
|
* @author socrates
|
||||||
*
|
*
|
||||||
@@ -18,6 +20,7 @@ public class UserAchievement extends Achievement {
|
|||||||
public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){
|
public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){
|
||||||
this.name = paName;
|
this.name = paName;
|
||||||
this.count = achievement.getCount();
|
this.count = achievement.getCount();
|
||||||
|
XmlStats.LogDebug("UserAchievement-const castet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Element getXml(Document doc){
|
public Element getXml(Document doc){
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import org.w3c.dom.Element;
|
|||||||
|
|
||||||
import com.nidefawl.Achievements.PlayerAchievement;
|
import com.nidefawl.Achievements.PlayerAchievement;
|
||||||
|
|
||||||
|
import de.sockenklaus.XmlStats.XmlStats;
|
||||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||||
import de.sockenklaus.XmlStats.Datasource.Datasource;
|
import de.sockenklaus.XmlStats.Datasource.Datasource;
|
||||||
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
||||||
@@ -18,13 +19,16 @@ import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
|||||||
*/
|
*/
|
||||||
public class UserAchievements extends Achievements {
|
public class UserAchievements extends Achievements {
|
||||||
public UserAchievements(String userName) throws XmlStatsException{
|
public UserAchievements(String userName) throws XmlStatsException{
|
||||||
|
super();
|
||||||
AchievementsDS ads = new AchievementsDS();
|
AchievementsDS ads = new AchievementsDS();
|
||||||
|
|
||||||
if (Datasource.userExists(userName)){
|
if (Datasource.userExists(userName)){
|
||||||
|
XmlStats.LogDebug("Achievements-const castet... user exists");
|
||||||
PlayerAchievement pa = ads.getUserAchievement(userName);
|
PlayerAchievement pa = ads.getUserAchievement(userName);
|
||||||
|
|
||||||
for(String paName : pa.achievements.keySet()){
|
for(String paName : pa.achievements.keySet()){
|
||||||
this.childNodes.add(new UserAchievement(paName, pa.get(paName)));
|
this.childNodes.add(new UserAchievement(paName, pa.get(paName)));
|
||||||
|
XmlStats.LogDebug("Added Achievement.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else throw new XmlStatsException("The given username is not valid.");
|
else throw new XmlStatsException("The given username is not valid.");
|
||||||
@@ -35,7 +39,7 @@ public class UserAchievements extends Achievements {
|
|||||||
result.setAttribute("count", this.getCountStr());
|
result.setAttribute("count", this.getCountStr());
|
||||||
|
|
||||||
for(Elem ach : this.childNodes){
|
for(Elem ach : this.childNodes){
|
||||||
result.appendChild(((UserAchievement)ach).getXml(doc));
|
result.appendChild(ach.getXml(doc));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -33,27 +33,6 @@ public class UserAchievements extends XmlWorker {
|
|||||||
throw new XmlStatsException("No data provided with this query!");
|
throw new XmlStatsException("No data provided with this query!");
|
||||||
}
|
}
|
||||||
|
|
||||||
private Element getUserAchievement(String userName){
|
|
||||||
Element elem_player = this.doc.createElement("user");
|
|
||||||
elem_player.appendChild(getTextElem("name", userName));
|
|
||||||
|
|
||||||
PlayerAchievement pa = achDS.getUserAchievement(userName);
|
|
||||||
|
|
||||||
Element elem_achs = this.doc.createElement("achievements");
|
|
||||||
elem_achs.setAttribute("count", String.valueOf(pa.achievements.size()));
|
|
||||||
|
|
||||||
for(String achName : pa.achievements.keySet()){
|
|
||||||
Element elem_ach = this.doc.createElement("achievement");
|
|
||||||
elem_ach.appendChild(getTextElem("name", achName));
|
|
||||||
elem_ach.appendChild(getTextElem("count", pa.achievements.get(achName).getCount()));
|
|
||||||
|
|
||||||
elem_achs.appendChild(elem_ach);
|
|
||||||
}
|
|
||||||
elem_player.appendChild(elem_achs);
|
|
||||||
|
|
||||||
return elem_player;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
|
||||||
*/
|
*/
|
||||||
@@ -66,15 +45,21 @@ public class UserAchievements extends XmlWorker {
|
|||||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) {
|
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException{
|
||||||
|
|
||||||
Element elem_users = this.doc.createElement("users");
|
Element elem_users = this.doc.createElement("users");
|
||||||
elem_users.setAttribute("count", String.valueOf(userList.size()));
|
elem_users.setAttribute("count", String.valueOf(userList.size()));
|
||||||
|
|
||||||
for(String userName : userList){
|
for(String userName : userList){
|
||||||
|
Element elem_player = this.doc.createElement("user");
|
||||||
|
elem_player.appendChild(getTextElem("name", userName));
|
||||||
|
|
||||||
elem_users.appendChild(this.getUserAchievement(userName));
|
de.sockenklaus.XmlStats.Objects.UserAchievements ua = new de.sockenklaus.XmlStats.Objects.UserAchievements(userName);
|
||||||
|
elem_player.appendChild(ua.getXml(this.doc));
|
||||||
|
|
||||||
|
elem_users.appendChild(elem_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
return elem_users;
|
return elem_users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user