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

View File

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

View File

@@ -13,16 +13,16 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
* @author socrates
*
*/
public class Achievements extends Array {
public class NodeAchievements extends NodeArray {
public Achievements(){
public NodeAchievements(){
super("achievements");
AchievementsDS ads = new AchievementsDS();
HashMap<String, AchievementListData> achList = ads.getAchievementsList();
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
*
*/
public abstract class Array extends NodeList {
public abstract class NodeArray extends NodeList {
public Array(String tagName){
public NodeArray(String tagName){
super(tagName);
}
public int getCountInt(){
return this.childNodes.size();
}
public String getCountStr(){
return String.valueOf(this.childNodes.size());
}
public Element getXml(Document doc){
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
*
*/
public class Item extends Node {
public class NodeItem extends Node {
/* (non-Javadoc)
* @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)

View File

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

View File

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

View File

@@ -27,6 +27,11 @@ public class NodeText extends Node {
this(tagName);
this.textContent = intContent.toString();
}
public NodeText(String tagName, Double dblContent){
this(tagName);
this.textContent = dblContent.toString();
}
public Element getXml(Document 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;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.nidefawl.Achievements.PlayerAchievement;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
import de.sockenklaus.XmlStats.Datasource.Datasource;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
@@ -17,18 +13,16 @@ import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
* @author socrates
*
*/
public class UserAchievements extends Achievements {
public UserAchievements(String userName) throws XmlStatsException{
super();
public class NodeUserAchievements extends NodeArray {
public NodeUserAchievements(String userName) throws XmlStatsException{
super("achivements");
AchievementsDS ads = new AchievementsDS();
if (Datasource.userExists(userName)){
XmlStats.LogDebug("Achievements-const castet... user exists");
PlayerAchievement pa = ads.getUserAchievement(userName);
for(String paName : pa.achievements.keySet()){
this.childNodes.add(new UserAchievement(paName, pa.get(paName)));
XmlStats.LogDebug("Added Achievement.");
this.childNodes.add(new NodeUserAchievement(paName, pa.get(paName)));
}
}
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 de.sockenklaus.XmlStats.Objects.Achievements;
import de.sockenklaus.XmlStats.Objects.NodeAchievements;
/**
* @author socrates
@@ -21,7 +21,7 @@ public class AchievementsList extends XmlWorker {
*/
@Override
protected Element getXml(Map<String, List<String>> parameters) {
Achievements ach = new Achievements();
NodeAchievements ach = new NodeAchievements();
return ach.getXml(this.doc);
}

View File

@@ -8,10 +8,11 @@ import java.util.Map;
import org.w3c.dom.Element;
import com.nidefawl.Achievements.PlayerAchievement;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
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
@@ -46,21 +47,15 @@ public class UserAchievements extends XmlWorker {
*/
@Override
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException{
Element elem_users = this.doc.createElement("users");
elem_users.setAttribute("count", String.valueOf(userList.size()));
NodeUsers node_users = new NodeUsers();
for(String userName : userList){
Element elem_player = this.doc.createElement("user");
elem_player.appendChild(getTextElem("name", 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);
NodeUser node_user = new NodeUser(userName);
node_user.appendChild(new NodeUserAchievements(userName));
node_users.appendChild(node_user);
}
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.Map;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.BalancesDS;
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
/**
@@ -39,18 +41,16 @@ public class UserBalances extends XmlWorker {
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
Element elem_users = this.doc.createElement("users");
elem_users.setAttribute("count", String.valueOf(playerList.size()));
NodeUsers node_users = new NodeUsers();
for(String userName : playerList){
Element elem_user = this.doc.createElement("user");
elem_user.appendChild(getTextElem("name", userName));
elem_user.appendChild(getTextElem("balance", String.valueOf(moneyDS.getBalance(userName))));
elem_users.appendChild(elem_user);
NodeUser node_user = new NodeUser(userName);
node_user.appendChild(new NodeText("balance", moneyDS.getBalance(userName)));
node_users.appendChild(node_user);
}
return elem_users;
return node_users.getXml(this.doc);
}
/* (non-Javadoc)
@@ -67,24 +67,20 @@ public class UserBalances extends XmlWorker {
*/
@Override
protected Element getSumXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException {
Element elem_sum = this.doc.createElement("sum");
Element elem_users = this.doc.createElement("users");
elem_users.setAttribute("count", String.valueOf(userList.size()));
elem_users.setAttribute("type", "name");
elem_sum.appendChild(elem_users);
NodeList node_sum = new NodeList("sum");
NodeUsers node_users = new NodeUsers();
node_sum.appendChild(node_users);
for(String userName : userList){
Element elem_user = this.doc.createElement("user");
elem_user.appendChild(getTextElem("name", userName));
elem_users.appendChild(elem_user);
XmlStats.LogDebug("Got "+userName);
NodeUser node_user = new NodeUser(userName);
node_users.appendChild(node_user);
}
int sum = moneyDS.getSum(userList);
node_sum.appendChild(new NodeText("balance", sum));
elem_sum.appendChild(getTextElem("balance", String.valueOf(sum)));
return elem_sum;
return node_sum.getXml(this.doc);
}
}

View File

@@ -14,16 +14,15 @@
*/
package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.bukkit.entity.Player;
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.Exceptions.XmlStatsException;
import de.sockenklaus.XmlStats.Objects.NodeUser;
import de.sockenklaus.XmlStats.Objects.NodeUsers;
// TODO: Auto-generated Javadoc
/**
@@ -35,52 +34,22 @@ public class UserList extends XmlWorker {
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
*/
@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");
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
*/
NodeUsers node_users = new NodeUsers();
for(String playerName : Datasource.fetchAllPlayers()){
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);
node_users.appendChild(new NodeUser(playerName));
}
/*
* Hier endet der XML-Aufbau
*/
return elem_users;
return node_users.getXml(this.doc);
}
/* (non-Javadoc)
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
*/
@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);
}
@@ -88,7 +57,7 @@ public class UserList extends XmlWorker {
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
*/
@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);
}