handling. So technically issue #14 is solved.
This commit is contained in:
@@ -21,6 +21,7 @@ import de.sockenklaus.XmlStats.XmlStatsRegistry;
|
|||||||
*/
|
*/
|
||||||
public class AchievementsDS extends Datasource {
|
public class AchievementsDS extends Datasource {
|
||||||
|
|
||||||
|
//HashMap<String, PlayerAchievement> playerAchievementsList;
|
||||||
|
|
||||||
public HashMap<String, AchievementListData> getAchievementsList(){
|
public HashMap<String, AchievementListData> getAchievementsList(){
|
||||||
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
||||||
@@ -31,7 +32,16 @@ public class AchievementsDS extends Datasource {
|
|||||||
else return new HashMap<String, AchievementListData>();
|
else return new HashMap<String, AchievementListData>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerAchievement getPlayerAchievement(String playerName){
|
/*public void refreshPlayerAchievements(){
|
||||||
|
PlayerAchievement pa;
|
||||||
|
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
||||||
|
|
||||||
|
if(ach.useSQL){
|
||||||
|
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public PlayerAchievement getUserAchievement(String playerName){
|
||||||
|
|
||||||
PlayerAchievement pa;
|
PlayerAchievement pa;
|
||||||
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ package de.sockenklaus.XmlStats.Datasource;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.iConomy.iConomy;
|
import com.iConomy.iConomy;
|
||||||
import com.iConomy.system.Account;
|
import com.iConomy.system.Account;
|
||||||
@@ -50,7 +49,7 @@ public class MoneyDS extends Datasource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
private Double getBalance(String playerName){
|
public Double getBalance(String playerName){
|
||||||
Double result = 0.0;
|
Double result = 0.0;
|
||||||
|
|
||||||
if (XmlStats.checkiConomy()){
|
if (XmlStats.checkiConomy()){
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ package de.sockenklaus.XmlStats.Datasource;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.nidefawl.Stats.Stats;
|
import com.nidefawl.Stats.Stats;
|
||||||
import com.nidefawl.Stats.datasource.Category;
|
import com.nidefawl.Stats.datasource.Category;
|
||||||
@@ -57,10 +58,10 @@ public class UserstatsDS extends Datasource {
|
|||||||
return this.statsPlugin.getDataFolder();
|
return this.statsPlugin.getDataFolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<String, HashMap<String, Integer>> getAddedStats(){
|
public HashMap<String, HashMap<String, Integer>> getAddedStats(List<String> playerList){
|
||||||
HashMap <String, HashMap<String, Integer>> result = new HashMap<String, HashMap<String, Integer>>();
|
HashMap <String, HashMap<String, Integer>> result = new HashMap<String, HashMap<String, Integer>>();
|
||||||
|
|
||||||
for(String playerName : this.fetchAllPlayers()){
|
for(String playerName : playerList){
|
||||||
PlayerStat player = this.getPlayerStat(playerName);
|
PlayerStat player = this.getPlayerStat(playerName);
|
||||||
|
|
||||||
for(String catName : player.getCats()){
|
for(String catName : player.getCats()){
|
||||||
|
|||||||
@@ -75,14 +75,14 @@ public class Webserver {
|
|||||||
|
|
||||||
this.server = HttpServer.create(this.address, 0);
|
this.server = HttpServer.create(this.address, 0);
|
||||||
|
|
||||||
this.server.createContext("/user_list.xml", new XmlWorkerUsers());
|
this.server.createContext("/user_list.xml", new UserList());
|
||||||
|
|
||||||
this.server.start();
|
this.server.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void startiConomy(){
|
protected void startiConomy(){
|
||||||
if (this.isRunning() && XmlStats.checkiConomy()){
|
if (this.isRunning() && XmlStats.checkiConomy()){
|
||||||
server.createContext("/user_balances.xml", new XmlWorkerMoney());
|
server.createContext("/user_balances.xml", new UserBalances());
|
||||||
XmlStats.LogInfo("iConomy seems to be loaded correctly. Enabling /user_balances.xml");
|
XmlStats.LogInfo("iConomy seems to be loaded correctly. Enabling /user_balances.xml");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -92,7 +92,8 @@ public class Webserver {
|
|||||||
|
|
||||||
protected void startAchievements(){
|
protected void startAchievements(){
|
||||||
if(this.isRunning() && XmlStats.checkAchievements()){
|
if(this.isRunning() && XmlStats.checkAchievements()){
|
||||||
server.createContext("/user_achievements.xml", new XmlWorkerAchievements());
|
server.createContext("/user_achievements.xml", new UserAchievements());
|
||||||
|
server.createContext("/achievements_list.xml", new AchievementsList());
|
||||||
XmlStats.LogInfo("Achievements seems to be loaded correctly. Enabling /user_achievements.xml");
|
XmlStats.LogInfo("Achievements seems to be loaded correctly. Enabling /user_achievements.xml");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -102,7 +103,7 @@ public class Webserver {
|
|||||||
|
|
||||||
protected void startStats(){
|
protected void startStats(){
|
||||||
if(this.isRunning() && XmlStats.checkStats()){
|
if(this.isRunning() && XmlStats.checkStats()){
|
||||||
server.createContext("/user_stats.xml", new XmlWorkerUserstats());
|
server.createContext("/user_stats.xml", new UserStats());
|
||||||
XmlStats.LogInfo("Stats seems to be loaded correctly. Enabling /user_stats.xml");
|
XmlStats.LogInfo("Stats seems to be loaded correctly. Enabling /user_stats.xml");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -17,48 +17,43 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
|||||||
* @author socrates
|
* @author socrates
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class XmlWorkerAchievements extends XmlWorker {
|
public class AchievementsList extends XmlWorker {
|
||||||
|
|
||||||
AchievementsDS achDS;
|
|
||||||
|
|
||||||
public XmlWorkerAchievements(){
|
|
||||||
this.achDS = new AchievementsDS();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXml(java.util.Map)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
Element getXML(Map<String, List<String>> parameters) {
|
protected Element getXml(Map<String, List<String>> parameters) {
|
||||||
|
HashMap<String, AchievementListData> achList = new AchievementsDS().getAchievementsList();
|
||||||
|
|
||||||
HashMap<String, AchievementListData> achList = achDS.getAchievementsList();
|
|
||||||
|
|
||||||
Element elem_achs = this.doc.createElement("achievements");
|
Element elem_achs = this.doc.createElement("achievements");
|
||||||
|
|
||||||
/*
|
for(String achName : achList.keySet()){
|
||||||
* Hier wird das XML aufgebaut
|
elem_achs.appendChild(getAchievement(achList.get(achName)));
|
||||||
*/
|
|
||||||
if(parameters.containsKey("user")){
|
|
||||||
for (String playerName : parameters.get("user")){
|
|
||||||
elem_achs.appendChild(getPlayerAchievement(playerName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
for(String achName : achList.keySet()){
|
|
||||||
elem_achs.appendChild(getAchievement(achList.get(achName)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Hier endet der XML-Aufbau
|
|
||||||
*/
|
|
||||||
return elem_achs;
|
return elem_achs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (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) {
|
||||||
|
return this.getXml(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @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) {
|
||||||
|
return this.getXml(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Element getAchievement(AchievementListData data){
|
private Element getAchievement(AchievementListData data){
|
||||||
Element elem_ach = this.doc.createElement("achievement");
|
Element elem_ach = this.doc.createElement("achievement");
|
||||||
|
elem_ach.setAttribute("enabled", data.isEnabled()?"true":"false");
|
||||||
|
|
||||||
Element elem_category = this.doc.createElement("category");
|
Element elem_category = this.doc.createElement("category");
|
||||||
elem_category.setTextContent(data.getCategory());
|
elem_category.setTextContent(data.getCategory());
|
||||||
@@ -84,11 +79,4 @@ public class XmlWorkerAchievements extends XmlWorker {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Element getPlayerAchievement(String playerName){
|
|
||||||
Element elem_player = this.doc.createElement("user");
|
|
||||||
elem_player.appendChild(getTextElem("name", playerName));
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
91
src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java
Normal file
91
src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package de.sockenklaus.XmlStats.XmlWorkers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
|
import com.nidefawl.Achievements.PlayerAchievement;
|
||||||
|
|
||||||
|
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author socrates
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UserAchievements extends XmlWorker {
|
||||||
|
|
||||||
|
AchievementsDS achDS;
|
||||||
|
|
||||||
|
public UserAchievements(){
|
||||||
|
this.achDS = new AchievementsDS();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Element getXml(Map<String, List<String>> parameters) {
|
||||||
|
Element elem_error = this.doc.createElement("error");
|
||||||
|
elem_error.setAttribute("code", "1");
|
||||||
|
elem_error.setTextContent("No data provided with this query!");
|
||||||
|
|
||||||
|
return elem_error;
|
||||||
|
}
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
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)
|
||||||
|
* @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) {
|
||||||
|
if(parameters.containsKey("user")){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Element elem_error = this.doc.createElement("error");
|
||||||
|
elem_error.setAttribute("code", "1");
|
||||||
|
elem_error.setTextContent("No data provided with this query!");
|
||||||
|
|
||||||
|
return elem_error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) {
|
||||||
|
Element elem_users = this.doc.createElement("users");
|
||||||
|
|
||||||
|
for(String userName : userList){
|
||||||
|
|
||||||
|
elem_users.appendChild(this.getUserAchievement(userName));
|
||||||
|
}
|
||||||
|
|
||||||
|
return elem_users;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
90
src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
Normal file
90
src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) [2011] [Pascal K<>nig]
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it under the terms of
|
||||||
|
* the GNU General Public License as published by the Free Software Foundation; either version
|
||||||
|
* 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program;
|
||||||
|
* if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package de.sockenklaus.XmlStats.XmlWorkers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
|
import de.sockenklaus.XmlStats.XmlStats;
|
||||||
|
import de.sockenklaus.XmlStats.Datasource.MoneyDS;
|
||||||
|
|
||||||
|
// TODO: Auto-generated Javadoc
|
||||||
|
/**
|
||||||
|
* The Class XmlWorkerMoney.
|
||||||
|
*/
|
||||||
|
public class UserBalances extends XmlWorker {
|
||||||
|
|
||||||
|
private MoneyDS moneyDS;
|
||||||
|
|
||||||
|
public UserBalances(){
|
||||||
|
this.moneyDS = new MoneyDS();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters){
|
||||||
|
|
||||||
|
Element elem_users = this.doc.createElement("users");
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
return elem_users;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Element getXml(Map<String, List<String>> parameters) {
|
||||||
|
Element elem_error = this.doc.createElement("error");
|
||||||
|
elem_error.setAttribute("code", "1");
|
||||||
|
elem_error.setTextContent("No data provided with this query!");
|
||||||
|
|
||||||
|
return elem_error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Element getSumXml(List<String> userList, Map<String, List<String>> parameters) {
|
||||||
|
|
||||||
|
Element elem_sum = this.doc.createElement("sum");
|
||||||
|
Element elem_users = this.doc.createElement("users");
|
||||||
|
elem_users.setAttribute("type", "name");
|
||||||
|
elem_sum.appendChild(elem_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
int sum = moneyDS.getSum(userList);
|
||||||
|
|
||||||
|
elem_sum.appendChild(getTextElem("balance", String.valueOf(sum)));
|
||||||
|
|
||||||
|
return elem_sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,13 +29,13 @@ import de.sockenklaus.XmlStats.Datasource.UsersDS;
|
|||||||
/**
|
/**
|
||||||
* The Class XmlWorkerUsers.
|
* The Class XmlWorkerUsers.
|
||||||
*/
|
*/
|
||||||
public class XmlWorkerUsers extends XmlWorker {
|
public class UserList extends XmlWorker {
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @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) {
|
||||||
UsersDS users = new UsersDS();
|
UsersDS users = new UsersDS();
|
||||||
|
|
||||||
Element elem_users = this.doc.createElement("users");
|
Element elem_users = this.doc.createElement("users");
|
||||||
@@ -77,4 +77,20 @@ public class XmlWorkerUsers extends XmlWorker {
|
|||||||
return elem_users;
|
return elem_users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (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) {
|
||||||
|
return this.getXml(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @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) {
|
||||||
|
return this.getXml(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
|
|||||||
/**
|
/**
|
||||||
* The Class XmlWorkerUserstats.
|
* The Class XmlWorkerUserstats.
|
||||||
*/
|
*/
|
||||||
public class XmlWorkerUserstats extends XmlWorker {
|
public class UserStats extends XmlWorker {
|
||||||
|
|
||||||
/** The stats ds. */
|
/** The stats ds. */
|
||||||
private UserstatsDS statsDS;
|
private UserstatsDS statsDS;
|
||||||
@@ -37,37 +37,19 @@ public class XmlWorkerUserstats extends XmlWorker {
|
|||||||
/**
|
/**
|
||||||
* Instantiates a new xml worker userstats.
|
* Instantiates a new xml worker userstats.
|
||||||
*/
|
*/
|
||||||
public XmlWorkerUserstats(){
|
public UserStats(){
|
||||||
this.statsDS = new UserstatsDS();
|
this.statsDS = new UserstatsDS();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
||||||
*/
|
*/
|
||||||
public Element getXML(Map<String, List<String>> parameters) {
|
public Element getXml(Map<String, List<String>> parameters) {
|
||||||
|
Element elem_error = this.doc.createElement("error");
|
||||||
|
elem_error.setAttribute("code", "1");
|
||||||
|
elem_error.setTextContent("No data provided with this query!");
|
||||||
|
|
||||||
Element elem_userstats = this.doc.createElement("userstats");
|
return elem_error;
|
||||||
|
|
||||||
/*
|
|
||||||
* Hier wird das XML aufgebaut
|
|
||||||
*/
|
|
||||||
if (!parameters.containsKey("player")){
|
|
||||||
// Generate a summarized XML
|
|
||||||
elem_userstats.setAttribute("type", "sum");
|
|
||||||
elem_userstats.appendChild(getAddedUpStatsElement());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Generate the XML for the given user(s)
|
|
||||||
for(String playerName : statsDS.fetchAllPlayers()){
|
|
||||||
if (parameters.containsKey("user") && parameters.get("user").contains(playerName.toLowerCase())){
|
|
||||||
elem_userstats.appendChild(getUserElement(playerName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* Hier endet der XML-Aufbau
|
|
||||||
*/
|
|
||||||
return elem_userstats;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -107,12 +89,12 @@ public class XmlWorkerUserstats extends XmlWorker {
|
|||||||
*
|
*
|
||||||
* @return the added up stats element
|
* @return the added up stats element
|
||||||
*/
|
*/
|
||||||
private Element getAddedUpStatsElement(){
|
private Element getAddedUpStatsElement(List<String> playerList){
|
||||||
HashMap<String, HashMap<String, Integer>> addedStats = statsDS.getAddedStats();
|
HashMap<String, HashMap<String, Integer>> addedStats = statsDS.getAddedStats(playerList);
|
||||||
Element elem_player = this.doc.createElement("user");
|
Element elem_stats = this.doc.createElement("stats");
|
||||||
Element elem_cats = this.doc.createElement("categories");
|
Element elem_cats = this.doc.createElement("categories");
|
||||||
|
|
||||||
elem_player.appendChild(elem_cats);
|
elem_stats.appendChild(elem_cats);
|
||||||
|
|
||||||
for (String catName : addedStats.keySet()){
|
for (String catName : addedStats.keySet()){
|
||||||
Element elem_cat = this.doc.createElement("category");
|
Element elem_cat = this.doc.createElement("category");
|
||||||
@@ -128,7 +110,7 @@ public class XmlWorkerUserstats extends XmlWorker {
|
|||||||
elem_cat.appendChild(elem_items);
|
elem_cat.appendChild(elem_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
return elem_player;
|
return elem_stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,4 +128,41 @@ public class XmlWorkerUserstats extends XmlWorker {
|
|||||||
|
|
||||||
return elem_item;
|
return elem_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (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) {
|
||||||
|
Element elem_sum = this.doc.createElement("sum");
|
||||||
|
Element elem_users = this.doc.createElement("users");
|
||||||
|
|
||||||
|
for (String userName : playerList){
|
||||||
|
Element elem_user = this.doc.createElement("user");
|
||||||
|
elem_user.appendChild(getTextElem("name", userName));
|
||||||
|
|
||||||
|
elem_users.appendChild(elem_user);
|
||||||
|
}
|
||||||
|
|
||||||
|
elem_sum.appendChild(elem_users);
|
||||||
|
elem_sum.appendChild(this.getAddedUpStatsElement(playerList));
|
||||||
|
|
||||||
|
return elem_sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @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) {
|
||||||
|
Element elem_users = this.doc.createElement("users");
|
||||||
|
|
||||||
|
for(String playerName : playerList){
|
||||||
|
elem_users.appendChild(this.getUserElement(playerName));
|
||||||
|
}
|
||||||
|
|
||||||
|
return elem_users;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -45,6 +45,8 @@ import com.sun.net.httpserver.HttpHandler;
|
|||||||
import com.sun.net.httpserver.HttpExchange;
|
import com.sun.net.httpserver.HttpExchange;
|
||||||
|
|
||||||
import de.sockenklaus.XmlStats.XmlStats;
|
import de.sockenklaus.XmlStats.XmlStats;
|
||||||
|
import de.sockenklaus.XmlStats.Datasource.Datasource;
|
||||||
|
import de.sockenklaus.XmlStats.Datasource.UsersDS;
|
||||||
|
|
||||||
// TODO: Auto-generated Javadoc
|
// TODO: Auto-generated Javadoc
|
||||||
/**
|
/**
|
||||||
@@ -90,13 +92,38 @@ public abstract class XmlWorker implements HttpHandler {
|
|||||||
this.result = new StreamResult(this.writer);
|
this.result = new StreamResult(this.writer);
|
||||||
this.tf = TransformerFactory.newInstance();
|
this.tf = TransformerFactory.newInstance();
|
||||||
this.transformer = this.tf.newTransformer();
|
this.transformer = this.tf.newTransformer();
|
||||||
|
Datasource ds = new UsersDS();
|
||||||
Element root = this.doc.createElement("xmlstats");
|
Element root = this.doc.createElement("xmlstats");
|
||||||
|
List<String> playerList;
|
||||||
this.doc.appendChild(root);
|
this.doc.appendChild(root);
|
||||||
/*
|
/*
|
||||||
* Actually create the XML
|
* Actually create the XML
|
||||||
*/
|
*/
|
||||||
root.appendChild(getXML(parameters));
|
|
||||||
|
if(parameters.isEmpty()){
|
||||||
|
root.appendChild(getXml(parameters));
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(parameters.containsKey("user")){
|
||||||
|
if (parameters.get("user").contains("*")){
|
||||||
|
playerList = ds.fetchAllPlayers();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
playerList = parameters.get("user");
|
||||||
|
}
|
||||||
|
|
||||||
|
root.appendChild(getUserXml(playerList, parameters));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parameters.containsKey("sum")){
|
||||||
|
if(parameters.get("sum").contains("*")){
|
||||||
|
playerList = ds.fetchAllPlayers();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
playerList = parameters.get("sum");
|
||||||
|
}
|
||||||
|
root.appendChild(getSumXml(playerList, parameters));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build string from XML
|
* Build string from XML
|
||||||
@@ -162,6 +189,26 @@ public abstract class XmlWorker implements HttpHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param parameters
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected abstract Element getXml(Map<String, List<String>> parameters);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param playerList
|
||||||
|
* @param parameters
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected abstract Element getSumXml(List<String> playerList, Map<String, List<String>> parameters);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param playerList
|
||||||
|
* @param parameters
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected abstract Element getUserXml(List<String> playerList, Map<String, List<String>> parameters);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the parameters.
|
* Parses the parameters.
|
||||||
*
|
*
|
||||||
@@ -204,14 +251,6 @@ public abstract class XmlWorker implements HttpHandler {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the xML.
|
|
||||||
*
|
|
||||||
* @param parameters the parameters
|
|
||||||
* @return the xML
|
|
||||||
*/
|
|
||||||
abstract Element getXML(Map<String, List<String>> parameters);
|
|
||||||
|
|
||||||
private byte[] compressData(byte[] input){
|
private byte[] compressData(byte[] input){
|
||||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
byte[] output;
|
byte[] output;
|
||||||
@@ -260,4 +299,10 @@ public abstract class XmlWorker implements HttpHandler {
|
|||||||
result.setTextContent(text);
|
result.setTextContent(text);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Element getTextElem(String elemName, int value){
|
||||||
|
Element result = this.doc.createElement(elemName);
|
||||||
|
result.setTextContent(String.valueOf(value));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,114 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) [2011] [Pascal K<>nig]
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the terms of
|
|
||||||
* the GNU General Public License as published by the Free Software Foundation; either version
|
|
||||||
* 3 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
||||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
* See the GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with this program;
|
|
||||||
* if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package de.sockenklaus.XmlStats.XmlWorkers;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.w3c.dom.Element;
|
|
||||||
|
|
||||||
import de.sockenklaus.XmlStats.XmlStats;
|
|
||||||
import de.sockenklaus.XmlStats.Datasource.MoneyDS;
|
|
||||||
|
|
||||||
// TODO: Auto-generated Javadoc
|
|
||||||
/**
|
|
||||||
* The Class XmlWorkerMoney.
|
|
||||||
*/
|
|
||||||
public class XmlWorkerMoney extends XmlWorker {
|
|
||||||
|
|
||||||
private MoneyDS moneyDS;
|
|
||||||
|
|
||||||
public XmlWorkerMoney(){
|
|
||||||
this.moneyDS = new MoneyDS();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Element getXML(Map<String, List<String>> parameters) {
|
|
||||||
|
|
||||||
HashMap<String, Double> balances = moneyDS.getBalances();
|
|
||||||
|
|
||||||
if (parameters.containsKey("user")){
|
|
||||||
Element elem_users = this.doc.createElement("users");
|
|
||||||
if(parameters.get("user").contains("*")){
|
|
||||||
|
|
||||||
for (String playerName : balances.keySet()){
|
|
||||||
Element elem_user = this.doc.createElement("user");
|
|
||||||
elem_user.appendChild(getTextElem("name", playerName));
|
|
||||||
elem_user.appendChild(getTextElem("balance", String.valueOf(balances.get(playerName))));
|
|
||||||
|
|
||||||
elem_users.appendChild(elem_user);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
for(String playerName : parameters.get("user")){
|
|
||||||
Element elem_user = this.doc.createElement("user");
|
|
||||||
elem_user.appendChild(getTextElem("name", playerName));
|
|
||||||
elem_user.appendChild(getTextElem("balance", String.valueOf(balances.get(playerName))));
|
|
||||||
|
|
||||||
elem_users.appendChild(elem_user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return elem_users;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (parameters.containsKey("sum")){
|
|
||||||
XmlStats.LogDebug("Entering the sum part");
|
|
||||||
Element elem_sum = this.doc.createElement("sum");
|
|
||||||
Element elem_users = this.doc.createElement("users");
|
|
||||||
elem_users.setAttribute("type", "name");
|
|
||||||
elem_sum.appendChild(elem_users);
|
|
||||||
|
|
||||||
|
|
||||||
if(parameters.get("sum").contains("*")){
|
|
||||||
List<String> userList = new ArrayList<String>();
|
|
||||||
for(String userName : balances.keySet()){
|
|
||||||
Element elem_user = this.doc.createElement("user");
|
|
||||||
elem_user.appendChild(getTextElem("name", userName));
|
|
||||||
elem_users.appendChild(elem_user);
|
|
||||||
XmlStats.LogDebug("Got "+userName);
|
|
||||||
userList.add(userName);
|
|
||||||
}
|
|
||||||
|
|
||||||
int sum = moneyDS.getSum(userList);
|
|
||||||
|
|
||||||
elem_sum.appendChild(getTextElem("balance", String.valueOf(sum)));
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
|
|
||||||
for(String userName : parameters.get("sum")){
|
|
||||||
Element elem_user = this.doc.createElement("user");
|
|
||||||
elem_user.appendChild(getTextElem("name", userName));
|
|
||||||
elem_users.appendChild(elem_user);
|
|
||||||
}
|
|
||||||
|
|
||||||
int sum = moneyDS.getSum(parameters.get("sum"));
|
|
||||||
|
|
||||||
elem_sum.appendChild(getTextElem("balance", String.valueOf(sum)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return elem_sum;
|
|
||||||
}
|
|
||||||
return this.doc.createElement("users");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user