Work on objects... Refactoring.

This commit is contained in:
Pascal Koenig
2011-10-06 22:49:33 +02:00
parent 379e9fb591
commit e1ba7c60e7
23 changed files with 179 additions and 231 deletions

View File

@@ -5,7 +5,7 @@
<property name="dist" value="dist" /> <property name="dist" value="dist" />
<property name="src" value="src" /> <property name="src" value="src" />
<property name="name" value="XmlStats" /> <property name="name" value="XmlStats" />
<property name="version" value="0.3" /> <property name="version" value="0.4" />
<property name="package" value="de/sockenklaus/XmlStats" /> <property name="package" value="de/sockenklaus/XmlStats" />
<property name="resources" value="resources" /> <property name="resources" value="resources" />
<property name="author" value="sockenklaus" /> <property name="author" value="sockenklaus" />

View File

@@ -1,32 +0,0 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* @author socrates
*
*/
public class Categories extends Array {
/**
* @param tagName
*/
public Categories() {
super("categories");
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see de.sockenklaus.XmlStats.Objects.Array#getXml(org.w3c.dom.Document)
*/
@Override
public Element getXml(Document doc) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -9,9 +9,6 @@ import java.util.HashMap;
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
* *
@@ -23,7 +20,6 @@ public abstract class Node {
public Node(){ public Node(){
this.attributes = new HashMap<String, String>(); this.attributes = new HashMap<String, String>();
XmlStats.LogDebug("Casting the constructor of Node()");
} }
public void setAttribute(String name, String value){ public void setAttribute(String name, String value){
@@ -31,7 +27,6 @@ public abstract class Node {
} }
public Element getXml(Document doc){ public Element getXml(Document doc){
XmlStats.LogDebug("Casting the first level getXml()");
Element result = doc.createElement(this.tagName); Element result = doc.createElement(this.tagName);
for(String attrName : this.attributes.keySet()){ for(String attrName : this.attributes.keySet()){

View File

@@ -9,13 +9,13 @@ import com.nidefawl.Achievements.AchievementListData;
* @author socrates * @author socrates
* *
*/ */
public class Achievement extends NodeList { public class NodeAchievement extends NodeList {
public Achievement(){ public NodeAchievement(){
super("achievement"); super("achievement");
} }
public Achievement(AchievementListData ach){ public NodeAchievement(AchievementListData ach){
super("achievement"); super("achievement");
this.childNodes.add(new NodeText("name", ach.getName())); this.childNodes.add(new NodeText("name", ach.getName()));

View File

@@ -13,16 +13,16 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
* @author socrates * @author socrates
* *
*/ */
public class Achievements extends Array { public class NodeAchievements extends NodeArray {
public Achievements(){ public NodeAchievements(){
super("achievements"); super("achievements");
AchievementsDS ads = new AchievementsDS(); AchievementsDS ads = new AchievementsDS();
HashMap<String, AchievementListData> achList = ads.getAchievementsList(); HashMap<String, AchievementListData> achList = ads.getAchievementsList();
for(String achName : achList.keySet()){ for(String achName : achList.keySet()){
this.childNodes.add(new Achievement(achList.get(achName))); this.childNodes.add(new NodeAchievement(achList.get(achName)));
} }
} }
} }

View File

@@ -10,20 +10,12 @@ import org.w3c.dom.Element;
* @author socrates * @author socrates
* *
*/ */
public abstract class Array extends NodeList { public abstract class NodeArray extends NodeList {
public Array(String tagName){ public NodeArray(String tagName){
super(tagName); super(tagName);
} }
public int getCountInt(){
return this.childNodes.size();
}
public String getCountStr(){
return String.valueOf(this.childNodes.size());
}
public Element getXml(Document doc){ public Element getXml(Document doc){
this.attributes.put("count", String.valueOf(this.childNodes.size())); this.attributes.put("count", String.valueOf(this.childNodes.size()));

View File

@@ -0,0 +1,22 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* @author socrates
*
*/
public class NodeCategories extends NodeArray {
/**
* @param tagName
*/
public NodeCategories() {
super("categories");
}
}

View File

@@ -0,0 +1,21 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
/**
* @author socrates
*
*/
public class NodeCategory extends NodeList {
/**
* @param tagName
*/
public NodeCategory(String catName) {
super("category");
}
}

View File

@@ -10,7 +10,7 @@ import org.w3c.dom.Element;
* @author socrates * @author socrates
* *
*/ */
public class Item extends Node { public class NodeItem extends Node {
/* (non-Javadoc) /* (non-Javadoc)
* @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document) * @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)

View File

@@ -10,12 +10,12 @@ import org.w3c.dom.Element;
* @author socrates * @author socrates
* *
*/ */
public class Items extends Array { public class NodeItems extends NodeArray {
/** /**
* @param tagName * @param tagName
*/ */
public Items() { public NodeItems() {
super("items"); super("items");
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }

View File

@@ -12,7 +12,7 @@ import org.w3c.dom.Element;
* @author socrates * @author socrates
* *
*/ */
public abstract class NodeList extends Node { public class NodeList extends Node {
protected ArrayList<Node> childNodes; protected ArrayList<Node> childNodes;
public NodeList(String tagName){ public NodeList(String tagName){
@@ -20,7 +20,7 @@ public abstract class NodeList extends Node {
this.tagName = tagName; this.tagName = tagName;
} }
public void addChild(Node child){ public void appendChild(Node child){
this.childNodes.add(child); this.childNodes.add(child);
} }

View File

@@ -27,6 +27,11 @@ public class NodeText extends Node {
this(tagName); this(tagName);
this.textContent = intContent.toString(); this.textContent = intContent.toString();
} }
public NodeText(String tagName, Double dblContent){
this(tagName);
this.textContent = dblContent.toString();
}
public Element getXml(Document doc){ public Element getXml(Document doc){
Element result = super.getXml(doc); Element result = super.getXml(doc);

View File

@@ -0,0 +1,35 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.XmlStatsRegistry;
import de.sockenklaus.XmlStats.Datasource.Datasource;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
/**
* @author socrates
*
*/
public class NodeUser extends NodeList {
public NodeUser(String name) throws XmlStatsException{
super("user");
if (Datasource.userExists(name)){
Server server = ((XmlStats)XmlStatsRegistry.get("xmlstats")).getServer();
Player player = server.getPlayer(name);
String status = (player != null && player.isOnline()) ?"online":"offline";
this.attributes.put("status", status);
this.childNodes.add(new NodeText("name", name));
}
else {
throw new XmlStatsException("The given user doesn't exist!");
}
}
}

View File

@@ -0,0 +1,20 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import com.nidefawl.Achievements.Achievement;
/**
* @author socrates
*
*/
public class NodeUserAchievement extends NodeList {
public NodeUserAchievement(String paName, Achievement achievement){
super("achievement");
this.childNodes.add(new NodeText("name", paName));
this.childNodes.add(new NodeText("count", achievement.getCount()));
}
}

View File

@@ -3,12 +3,8 @@
*/ */
package de.sockenklaus.XmlStats.Objects; package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
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;
@@ -17,18 +13,16 @@ import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
* @author socrates * @author socrates
* *
*/ */
public class UserAchievements extends Achievements { public class NodeUserAchievements extends NodeArray {
public UserAchievements(String userName) throws XmlStatsException{ public NodeUserAchievements(String userName) throws XmlStatsException{
super(); super("achivements");
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 NodeUserAchievement(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.");

View File

@@ -0,0 +1,18 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
/**
* @author socrates
*
*/
public class NodeUsers extends NodeArray {
/**
* @param tagName
*/
public NodeUsers() {
super("users");
}
}

View File

@@ -1,30 +0,0 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* @author socrates
*
*/
public class User extends Node {
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;
}
}

View File

@@ -1,20 +0,0 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import de.sockenklaus.XmlStats.XmlStats;
/**
* @author socrates
*
*/
public class UserAchievement extends Achievement {
public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){
this.childNodes.add(new NodeText("name", paName));
this.childNodes.add(new NodeText("count", achievement.getCount()));
XmlStats.LogDebug("UserAchievement-const castet.");
}
}

View File

@@ -1,32 +0,0 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* @author socrates
*
*/
public class Users extends Array {
/**
* @param tagName
*/
public Users() {
super("users");
// TODO Auto-generated constructor stub
}
/* (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;
}
}

View File

@@ -8,7 +8,7 @@ import java.util.Map;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import de.sockenklaus.XmlStats.Objects.Achievements; import de.sockenklaus.XmlStats.Objects.NodeAchievements;
/** /**
* @author socrates * @author socrates
@@ -21,7 +21,7 @@ public class AchievementsList extends XmlWorker {
*/ */
@Override @Override
protected Element getXml(Map<String, List<String>> parameters) { protected Element getXml(Map<String, List<String>> parameters) {
Achievements ach = new Achievements(); NodeAchievements ach = new NodeAchievements();
return ach.getXml(this.doc); return ach.getXml(this.doc);
} }

View File

@@ -8,10 +8,11 @@ import java.util.Map;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import com.nidefawl.Achievements.PlayerAchievement;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS; import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException; import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
import de.sockenklaus.XmlStats.Objects.NodeUser;
import de.sockenklaus.XmlStats.Objects.NodeUserAchievements;
import de.sockenklaus.XmlStats.Objects.NodeUsers;
/** /**
* @author socrates * @author socrates
@@ -46,21 +47,15 @@ public class UserAchievements extends XmlWorker {
*/ */
@Override @Override
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException{ protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException{
NodeUsers node_users = new NodeUsers();
Element elem_users = this.doc.createElement("users");
elem_users.setAttribute("count", String.valueOf(userList.size()));
for(String userName : userList){ for(String userName : userList){
Element elem_player = this.doc.createElement("user"); NodeUser node_user = new NodeUser(userName);
elem_player.appendChild(getTextElem("name", userName)); node_user.appendChild(new NodeUserAchievements(userName));
node_users.appendChild(node_user);
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 node_users.getXml(this.doc);
} }
} }

View File

@@ -17,12 +17,14 @@ package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.BalancesDS; import de.sockenklaus.XmlStats.Datasource.BalancesDS;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException; import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
import de.sockenklaus.XmlStats.Objects.NodeList;
import de.sockenklaus.XmlStats.Objects.NodeText;
import de.sockenklaus.XmlStats.Objects.NodeUser;
import de.sockenklaus.XmlStats.Objects.NodeUsers;
// TODO: Auto-generated Javadoc // TODO: Auto-generated Javadoc
/** /**
@@ -39,18 +41,16 @@ public class UserBalances extends XmlWorker {
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException { protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
Element elem_users = this.doc.createElement("users"); NodeUsers node_users = new NodeUsers();
elem_users.setAttribute("count", String.valueOf(playerList.size()));
for(String userName : playerList){ for(String userName : playerList){
Element elem_user = this.doc.createElement("user"); NodeUser node_user = new NodeUser(userName);
elem_user.appendChild(getTextElem("name", userName)); node_user.appendChild(new NodeText("balance", moneyDS.getBalance(userName)));
elem_user.appendChild(getTextElem("balance", String.valueOf(moneyDS.getBalance(userName))));
node_users.appendChild(node_user);
elem_users.appendChild(elem_user);
} }
return elem_users; return node_users.getXml(this.doc);
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -67,24 +67,20 @@ public class UserBalances extends XmlWorker {
*/ */
@Override @Override
protected Element getSumXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException { protected Element getSumXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException {
Element elem_sum = this.doc.createElement("sum"); NodeList node_sum = new NodeList("sum");
Element elem_users = this.doc.createElement("users"); NodeUsers node_users = new NodeUsers();
elem_users.setAttribute("count", String.valueOf(userList.size()));
elem_users.setAttribute("type", "name"); node_sum.appendChild(node_users);
elem_sum.appendChild(elem_users);
for(String userName : userList){ for(String userName : userList){
Element elem_user = this.doc.createElement("user"); NodeUser node_user = new NodeUser(userName);
elem_user.appendChild(getTextElem("name", userName)); node_users.appendChild(node_user);
elem_users.appendChild(elem_user);
XmlStats.LogDebug("Got "+userName);
} }
int sum = moneyDS.getSum(userList); int sum = moneyDS.getSum(userList);
node_sum.appendChild(new NodeText("balance", sum));
elem_sum.appendChild(getTextElem("balance", String.valueOf(sum))); return node_sum.getXml(this.doc);
return elem_sum;
} }
} }

View File

@@ -14,16 +14,15 @@
*/ */
package de.sockenklaus.XmlStats.XmlWorkers; package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
import org.bukkit.entity.Player;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.XmlStatsRegistry;
import de.sockenklaus.XmlStats.Datasource.Datasource; import de.sockenklaus.XmlStats.Datasource.Datasource;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
import de.sockenklaus.XmlStats.Objects.NodeUser;
import de.sockenklaus.XmlStats.Objects.NodeUsers;
// TODO: Auto-generated Javadoc // TODO: Auto-generated Javadoc
/** /**
@@ -35,52 +34,22 @@ public class UserList extends XmlWorker {
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map) * @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
*/ */
@Override @Override
public Element getXml(Map<String, List<String>> parameters) { public Element getXml(Map<String, List<String>> parameters) throws XmlStatsException {
Element elem_users = this.doc.createElement("users"); NodeUsers node_users = new NodeUsers();
elem_users.setAttribute("count", String.valueOf(Datasource.fetchAllPlayers().size()));
/*
* Get list online player names
*/
XmlStats pluginTemp= (XmlStats)XmlStatsRegistry.get("xmlstats");
Player[] onlinePlayers = pluginTemp.getServer().getOnlinePlayers();
List<String> onlinePlayerNames = new ArrayList<String>();
if (onlinePlayers != null){
for (int i = 0; i < onlinePlayers.length; i++){
onlinePlayerNames.add(onlinePlayers[i].getName());
}
}
/*
* Got list of online player names
*/
/*
* Hier wird das XML aufgebaut
*/
for(String playerName : Datasource.fetchAllPlayers()){ for(String playerName : Datasource.fetchAllPlayers()){
node_users.appendChild(new NodeUser(playerName));
Element elem_player = this.doc.createElement("user");
elem_player.appendChild(getTextElem("name", playerName));
elem_player.setAttribute("status", onlinePlayerNames.contains(playerName) ? "online":"offline");
elem_users.appendChild(elem_player);
} }
/*
* Hier endet der XML-Aufbau return node_users.getXml(this.doc);
*/
return elem_users;
} }
/* (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)
*/ */
@Override @Override
protected Element getSumXml(List<String> playerList, Map<String, List<String>> parameters) { protected Element getSumXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
return this.getXml(parameters); return this.getXml(parameters);
} }
@@ -88,7 +57,7 @@ public class UserList 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> playerList, Map<String, List<String>> parameters) { protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
return this.getXml(parameters); return this.getXml(parameters);
} }