Fixed the commit again...

This commit is contained in:
Pascal Koenig
2011-10-05 13:06:54 +02:00
parent 4270515f8c
commit 4ac770e4e9
11 changed files with 122 additions and 80 deletions

View File

@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Tue Oct 04 10:43:28 CEST 2011 #Wed Oct 05 13:06:09 CEST 2011
build.number=18 build.number=22

View File

@@ -18,6 +18,10 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.bukkit.World;
import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.XmlStatsRegistry;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException; import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
// TODO: Auto-generated Javadoc // TODO: Auto-generated Javadoc
@@ -32,19 +36,25 @@ public abstract class Datasource {
* @return the array list * @return the array list
*/ */
public static ArrayList<String> fetchAllPlayers(){ 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>(); ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < files.length; i++){ for(World world : worlds){
int whereDot = files[i].getName().lastIndexOf('.'); File[] files = new File(world.getName()+"/players").listFiles();
if (0 < whereDot && whereDot <= files[i].getName().length() - 2){ for (File file : files){
String playerName = files[i].getName().substring(0, whereDot); 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; return result;
} }

View File

@@ -18,9 +18,10 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
* *
*/ */
public class Achievements extends Array { public class Achievements extends Array {
protected ArrayList<Achievement> childNodes; //protected ArrayList<Achievement> childNodes;
public Achievements(){ public Achievements(){
super();
AchievementsDS ads = new AchievementsDS(); AchievementsDS ads = new AchievementsDS();
HashMap<String, AchievementListData> achList = ads.getAchievementsList(); HashMap<String, AchievementListData> achList = ads.getAchievementsList();
@@ -34,7 +35,7 @@ public class Achievements extends Array {
Element result = doc.createElement("achievements"); Element result = doc.createElement("achievements");
result.setAttribute("count", this.getCountStr()); result.setAttribute("count", this.getCountStr());
for(Achievement ach : this.childNodes){ for(Elem ach : this.childNodes){
result.appendChild(ach.getXml(doc)); result.appendChild(ach.getXml(doc));
} }

View File

@@ -5,13 +5,19 @@ package de.sockenklaus.XmlStats.Objects;
import java.util.ArrayList; import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/** /**
* @author socrates * @author socrates
* *
*/ */
public abstract class Array { public abstract class Array {
private ArrayList<?> childNodes; protected ArrayList<Elem> childNodes;
protected Array(){
this.childNodes = new ArrayList<Elem>();
}
public int getCountInt(){ public int getCountInt(){
return this.childNodes.size(); return this.childNodes.size();
} }
@@ -19,4 +25,10 @@ public abstract class Array {
public String getCountStr(){ public String getCountStr(){
return String.valueOf(this.childNodes.size()); return String.valueOf(this.childNodes.size());
} }
/**
* @param doc
* @return
*/
public abstract Element getXml(Document doc);
} }

View File

@@ -3,10 +3,22 @@
*/ */
package de.sockenklaus.XmlStats.Objects; package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/** /**
* @author socrates * @author socrates
* *
*/ */
public class Categories extends Array { public class Categories extends Array {
/* (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

@@ -5,6 +5,7 @@ package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import org.w3c.dom.Node;
/** /**
* @author socrates * @author socrates
@@ -22,4 +23,10 @@ public abstract class Elem {
result.setTextContent(String.valueOf(value)); result.setTextContent(String.valueOf(value));
return result; return result;
} }
/**
* @param doc
* @return
*/
public abstract Node getXml(Document doc);
} }

View File

@@ -3,12 +3,22 @@
*/ */
package de.sockenklaus.XmlStats.Objects; package de.sockenklaus.XmlStats.Objects;
import java.util.ArrayList; import org.w3c.dom.Document;
import org.w3c.dom.Element;
/** /**
* @author socrates * @author socrates
* *
*/ */
public class Items extends Array { public class Items extends Array {
/* (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

@@ -0,0 +1,32 @@
/**
*
*/
package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* @author socrates
*
*/
public class UserAchievement extends Achievement {
private String name;
private int count;
public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){
this.name = paName;
this.count = achievement.getCount();
}
public Element getXml(Document doc){
Element result = doc.createElement("achievement");
result.appendChild(this.addXmlChild("name", this.name, doc));
result.appendChild(this.addXmlChild("count", this.count, doc));
return result;
}
}

View File

@@ -9,27 +9,32 @@ import org.w3c.dom.Element;
import com.nidefawl.Achievements.PlayerAchievement; import com.nidefawl.Achievements.PlayerAchievement;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS; import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
import de.sockenklaus.XmlStats.Datasource.Datasource;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
/** /**
* @author socrates * @author socrates
* *
*/ */
public class UserAchievements extends Achievements { public class UserAchievements extends Achievements {
public UserAchievements(String userName){ public UserAchievements(String userName) throws XmlStatsException{
AchievementsDS ads = new AchievementsDS(); AchievementsDS ads = new AchievementsDS();
PlayerAchievement pa = ads.getUserAchievement(userName); if (Datasource.userExists(userName)){
PlayerAchievement pa = ads.getUserAchievement(userName);
for(String paName : pa.achievements.keySet()){
this.childNodes.add(new UserAchievement(paName, pa.get(paName))); 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){ public Element getXml(Document doc){
Element result = doc.createElement("achievements"); Element result = doc.createElement("achievements");
result.setAttribute("count", this.getCountStr()); result.setAttribute("count", this.getCountStr());
for(Achievement ach : this.childNodes){ for(Elem ach : this.childNodes){
result.appendChild(((UserAchievement)ach).getXml(doc)); result.appendChild(((UserAchievement)ach).getXml(doc));
} }

View File

@@ -3,10 +3,22 @@
*/ */
package de.sockenklaus.XmlStats.Objects; package de.sockenklaus.XmlStats.Objects;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/** /**
* @author socrates * @author socrates
* *
*/ */
public class Users extends Array { 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;
}
} }

View File

@@ -3,15 +3,12 @@
*/ */
package de.sockenklaus.XmlStats.XmlWorkers; package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import com.nidefawl.Achievements.AchievementListData; import de.sockenklaus.XmlStats.Objects.Achievements;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
/** /**
* @author socrates * @author socrates
@@ -24,16 +21,8 @@ public class AchievementsList extends XmlWorker {
*/ */
@Override @Override
protected Element getXml(Map<String, List<String>> parameters) { 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) /* (non-Javadoc)
@@ -51,52 +40,4 @@ public class AchievementsList extends XmlWorker {
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) { protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) {
return this.getXml(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");
<<<<<<< HEAD
Element elem_achname = this.doc.createElement("name");
elem_achname.setTextContent(data.getName());
elem_ach.appendChild(elem_achname);
Element elem_achdesc = this.doc.createElement("description");
elem_achdesc.setTextContent(data.getDescription());
elem_ach.appendChild(elem_achdesc);
Element elem_category = this.doc.createElement("category");
elem_category.setTextContent(data.getCategory());
elem_ach.appendChild(elem_category);
Element elem_stat = this.doc.createElement("stat");
elem_stat.setTextContent(data.getKey());
elem_ach.appendChild(elem_stat);
Element elem_value = this.doc.createElement("value");
elem_value.setTextContent(String.valueOf(data.getValue()));
elem_ach.appendChild(elem_value);
Element elem_maxawards = this.doc.createElement("maxawards");
elem_maxawards.setTextContent(String.valueOf(data.getMaxawards()));
elem_ach.appendChild(elem_maxawards);
Element elem_commands = this.doc.createElement("commands");
elem_commands.setTextContent(data.commands.toString());
elem_ach.appendChild(elem_commands);
=======
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()));
>>>>>>> parent of 40d9bce... Pushed version to 0.4. Did some work on object based XML generation.
return elem_ach;
}
} }