Increased version number to 0.3 and continued unifying the xml schemes.

This commit is contained in:
Pascal Koenig
2011-09-07 00:15:59 +02:00
parent aa82666069
commit 0fbfc27d3c
5 changed files with 96 additions and 31 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.2" /> <property name="version" value="0.3" />
<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

@@ -16,6 +16,8 @@ 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.Set;
import com.iConomy.iConomy; import com.iConomy.iConomy;
import com.iConomy.system.Account; import com.iConomy.system.Account;
@@ -69,4 +71,18 @@ public class MoneyDS extends Datasource {
return result; return result;
} }
/**
* @param list
* @return
*/
public int getSum(List<String> list) {
int result = 0;
for(String playerName : list){
result+=this.getBalance(playerName);
}
return result;
}
} }

View File

@@ -75,15 +75,15 @@ public class Webserver {
this.server = HttpServer.create(this.address, 0); this.server = HttpServer.create(this.address, 0);
this.server.createContext("/users_list.xml", new XmlWorkerUsers()); this.server.createContext("/user_list.xml", new XmlWorkerUsers());
this.server.start(); this.server.start();
} }
protected void startiConomy(){ protected void startiConomy(){
if (this.isRunning() && XmlStats.checkiConomy()){ if (this.isRunning() && XmlStats.checkiConomy()){
server.createContext("/users_balances.xml", new XmlWorkerMoney()); server.createContext("/user_balances.xml", new XmlWorkerMoney());
XmlStats.LogInfo("iConomy seems to be loaded correctly. Enabling /users_balances.xml"); XmlStats.LogInfo("iConomy seems to be loaded correctly. Enabling /user_balances.xml");
} }
else { else {
XmlStats.LogWarn("iConomy or webserver not loaded correctly. Disabling /users_balances.xml"); XmlStats.LogWarn("iConomy or webserver not loaded correctly. Disabling /users_balances.xml");

View File

@@ -179,27 +179,26 @@ public abstract class XmlWorker implements HttpHandler {
String param[] = pair.split("[=]"); String param[] = pair.split("[=]");
String key = null; String key = null;
String value = null; String[] valueArr = null;
if(param.length > 0){ if(param.length > 0){
key = URLDecoder.decode(param[0].toLowerCase(), System.getProperty("file.encoding")); key = URLDecoder.decode(param[0].toLowerCase(), System.getProperty("file.encoding"));
valueArr = new String[1];
valueArr[0] = "";
} }
if(param.length > 1){ if(param.length > 1){
value = URLDecoder.decode(param[1].toLowerCase(), System.getProperty("file.encoding")); valueArr = URLDecoder.decode(param[1].toLowerCase(), System.getProperty("file.encoding")).split(",");
} }
if (result.containsKey(key)){ List<String> values = new ArrayList<String>();
List<String> values = result.get(key); for (String value : valueArr){
if (!values.contains(value)){
values.add(value); values.add(value);
}
} }
else {
List<String> values = new ArrayList<String>();
values.add(value);
result.put(key, values); result.put(key, values);
}
} }
} }
return result; return result;

View File

@@ -14,12 +14,15 @@
*/ */
package de.sockenklaus.XmlStats.XmlWorkers; package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.MoneyDS; import de.sockenklaus.XmlStats.Datasource.MoneyDS;
// TODO: Auto-generated Javadoc // TODO: Auto-generated Javadoc
@@ -42,23 +45,70 @@ public class XmlWorkerMoney extends XmlWorker {
HashMap<String, Double> balances = moneyDS.getBalances(); HashMap<String, Double> balances = moneyDS.getBalances();
Element elem_users = this.doc.createElement("users"); 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);
* Hier wird das XML aufgebaut }
*/
}
for (String playerName : balances.keySet()){ else {
Element elem_user = this.doc.createElement("user"); for(String playerName : parameters.get("user")){
elem_user.appendChild(getTextElem("name", playerName)); Element elem_user = this.doc.createElement("user");
elem_user.appendChild(getTextElem("balance", String.valueOf(balances.get(playerName)))); elem_user.appendChild(getTextElem("name", playerName));
elem_user.appendChild(getTextElem("balance", String.valueOf(balances.get(playerName))));
elem_users.appendChild(elem_user);
elem_users.appendChild(elem_user);
}
}
return elem_users;
} }
/* else if (parameters.containsKey("sum")){
* Hier endet der XML-Aufbau XmlStats.LogDebug("Entering the sum part");
*/ Element elem_sum = this.doc.createElement("sum");
return elem_users; 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");
} }
} }