Pushed version to 0.4. Did some work on object based XML generation.
This commit is contained in:
@@ -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" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -31,6 +31,7 @@ public class AchievementsDS extends Datasource {
|
||||
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
||||
|
||||
if(xmlstats.checkAchievements()){
|
||||
XmlStats.LogDebug("Found "+ach.achievementList.size()+" achievements.");
|
||||
return ach.achievementList;
|
||||
}
|
||||
else return new HashMap<String, AchievementListData>();
|
||||
|
||||
@@ -18,6 +18,10 @@ import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import de.sockenklaus.XmlStats.XmlStats;
|
||||
import de.sockenklaus.XmlStats.XmlStatsRegistry;
|
||||
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
@@ -32,18 +36,24 @@ public abstract class Datasource {
|
||||
* @return the array list
|
||||
*/
|
||||
public static ArrayList<String> fetchAllPlayers(){
|
||||
File[] files = new File("world/players").listFiles();
|
||||
XmlStats xmlstats = (XmlStats)XmlStatsRegistry.get("xmlstats");
|
||||
List<World> worlds = xmlstats.getServer().getWorlds();
|
||||
ArrayList<String> result = new ArrayList<String>();
|
||||
|
||||
for (int i = 0; i < files.length; i++){
|
||||
int whereDot = files[i].getName().lastIndexOf('.');
|
||||
for(World world : worlds){
|
||||
File[] files = new File(world.getName()+"/players").listFiles();
|
||||
|
||||
if (0 < whereDot && whereDot <= files[i].getName().length() - 2){
|
||||
String playerName = files[i].getName().substring(0, whereDot);
|
||||
for (File file : files){
|
||||
int whereDot = file.getName().lastIndexOf('.');
|
||||
|
||||
result.add(playerName);
|
||||
if (0 < whereDot && whereDot <= file.getName().length() - 2){
|
||||
String playerName = file.getName().substring(0, whereDot);
|
||||
|
||||
if(!result.contains(playerName)) result.add(playerName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import org.w3c.dom.Element;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
|
||||
import de.sockenklaus.XmlStats.XmlStats;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
@@ -24,6 +26,7 @@ public class Achievement extends Elem {
|
||||
private Boolean enabled;
|
||||
|
||||
public Achievement(AchievementListData ach){
|
||||
|
||||
this.name = ach.getName();
|
||||
this.description = ach.getDescription();
|
||||
this.category = ach.getCategory();
|
||||
@@ -32,6 +35,7 @@ public class Achievement extends Elem {
|
||||
this.maxawards = ach.getMaxawards();
|
||||
this.commands = ach.commands.toString();
|
||||
this.enabled = ach.isEnabled();
|
||||
XmlStats.LogDebug("End of Achievement constructor.");
|
||||
}
|
||||
|
||||
protected Achievement(){
|
||||
@@ -41,7 +45,7 @@ public class Achievement extends Elem {
|
||||
public Element getXml(Document doc){
|
||||
Element result = doc.createElement("achievement");
|
||||
|
||||
result.setAttribute("enabled", this.enabled ?"true":"false");
|
||||
result.setAttribute("enabled", this.enabled.toString());
|
||||
result.appendChild(this.addXmlChild("name", this.name, doc));
|
||||
result.appendChild(this.addXmlChild("description", this.description, doc));
|
||||
result.appendChild(this.addXmlChild("category", this.category, doc));
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
@@ -11,6 +10,7 @@ import org.w3c.dom.Element;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
|
||||
import de.sockenklaus.XmlStats.XmlStats;
|
||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
|
||||
/**
|
||||
@@ -18,9 +18,10 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
*
|
||||
*/
|
||||
public class Achievements extends Array {
|
||||
protected ArrayList<Achievement> childNodes;
|
||||
|
||||
public Achievements(){
|
||||
super();
|
||||
XmlStats.LogDebug("Casting Achievements constructor");
|
||||
AchievementsDS ads = new AchievementsDS();
|
||||
|
||||
HashMap<String, AchievementListData> achList = ads.getAchievementsList();
|
||||
@@ -34,7 +35,7 @@ public class Achievements extends Array {
|
||||
Element result = doc.createElement("achievements");
|
||||
result.setAttribute("count", this.getCountStr());
|
||||
|
||||
for(Achievement ach : this.childNodes){
|
||||
for(Elem ach : this.childNodes){
|
||||
result.appendChild(ach.getXml(doc));
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,12 @@ import java.util.ArrayList;
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public abstract class Array {
|
||||
private ArrayList<?> childNodes;
|
||||
public abstract class Array extends Elem{
|
||||
protected ArrayList<Elem> childNodes;
|
||||
|
||||
public Array(){
|
||||
this.childNodes = new ArrayList<Elem>();
|
||||
}
|
||||
|
||||
public int getCountInt(){
|
||||
return this.childNodes.size();
|
||||
|
||||
@@ -3,10 +3,22 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class Categories extends Array {
|
||||
|
||||
/* (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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,4 +22,10 @@ public abstract class Elem {
|
||||
result.setTextContent(String.valueOf(value));
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param doc
|
||||
* @return
|
||||
*/
|
||||
public abstract Element getXml(Document doc);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
@@ -11,4 +12,13 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class Items extends Array {
|
||||
|
||||
/* (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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,27 +9,32 @@ import org.w3c.dom.Element;
|
||||
import com.nidefawl.Achievements.PlayerAchievement;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
import de.sockenklaus.XmlStats.Datasource.Datasource;
|
||||
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class UserAchievements extends Achievements {
|
||||
public UserAchievements(String userName){
|
||||
public UserAchievements(String userName) throws XmlStatsException{
|
||||
AchievementsDS ads = new AchievementsDS();
|
||||
|
||||
if (Datasource.userExists(userName)){
|
||||
PlayerAchievement pa = ads.getUserAchievement(userName);
|
||||
|
||||
for(String paName : pa.achievements.keySet()){
|
||||
this.childNodes.add(new UserAchievement(paName, pa.get(paName)));
|
||||
}
|
||||
}
|
||||
else throw new XmlStatsException("The given username is not valid.");
|
||||
}
|
||||
|
||||
public Element getXml(Document doc){
|
||||
Element result = doc.createElement("achievements");
|
||||
result.setAttribute("count", this.getCountStr());
|
||||
|
||||
for(Achievement ach : this.childNodes){
|
||||
for(Elem ach : this.childNodes){
|
||||
result.appendChild(((UserAchievement)ach).getXml(doc));
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,22 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class Users extends Array {
|
||||
|
||||
/* (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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,15 +3,12 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.XmlWorkers;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
import de.sockenklaus.XmlStats.Objects.Achievements;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
@@ -24,16 +21,9 @@ public class AchievementsList extends XmlWorker {
|
||||
*/
|
||||
@Override
|
||||
protected Element getXml(Map<String, List<String>> parameters) {
|
||||
HashMap<String, AchievementListData> achList = new AchievementsDS().getAchievementsList();
|
||||
Achievements ach = new Achievements();
|
||||
return ach.getXml(this.doc);
|
||||
|
||||
Element elem_achs = this.doc.createElement("achievements");
|
||||
elem_achs.setAttribute("count", String.valueOf(achList.size()));
|
||||
|
||||
for(String achName : achList.keySet()){
|
||||
elem_achs.appendChild(getAchievement(achList.get(achName)));
|
||||
}
|
||||
|
||||
return elem_achs;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -51,21 +41,4 @@ public class AchievementsList extends XmlWorker {
|
||||
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) {
|
||||
return this.getXml(parameters);
|
||||
}
|
||||
|
||||
private Element getAchievement(AchievementListData data){
|
||||
Element elem_ach = this.doc.createElement("achievement");
|
||||
elem_ach.setAttribute("enabled", data.isEnabled()?"true":"false");
|
||||
|
||||
elem_ach.appendChild(getTextElem("name", data.getName()));
|
||||
elem_ach.appendChild(getTextElem("description", data.getDescription()));
|
||||
elem_ach.appendChild(getTextElem("category", data.getCategory()));
|
||||
elem_ach.appendChild(getTextElem("stat", data.getKey()));
|
||||
elem_ach.appendChild(getTextElem("value", data.getValue()));
|
||||
elem_ach.appendChild(getTextElem("maxawards", data.getMaxawards()));
|
||||
elem_ach.appendChild(getTextElem("commands", data.commands.toString()));
|
||||
|
||||
return elem_ach;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user