package com.appengine.dockstats.factory;
//~--- non-JDK imports --------------------------------------------------------
import com.appengine.dockstats.XmlUtils;
import com.appengine.dockstats.entities.DockStation;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.memcache.MemcacheServiceFactory;
//~--- JDK imports ------------------------------------------------------------
import java.util.Iterator;
import java.util.Map;
public class XmlBikeData extends BikeData {
private MemcacheService memcache;
public XmlBikeData() {
memcache = MemcacheServiceFactory.getMemcacheService();
}
public String getData() {
// memcache = MemcacheServiceFactory.getMemcacheService();
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
buffer.append("<dockStationList>");
if (memcache.contains("cycleData")) {
buffer.append("<updatedOn>" + memcache.get("updateTime") + "</updatedOn>");
Map<Integer, DockStation> mp = (Map<Integer, DockStation>) memcache.get("cycleData");
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry) it.next();
buffer.append(pairs.getValue());
}
} else {
buffer.append("<error>Data Feed not available</error>");
}
buffer.append("</dockStationList>");
String xml = XmlUtils.formatXml(buffer.toString());
return xml;
}
@Override
public String getData(int dockID) {
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
buffer.append("<dockStationList>");
if (memcache.contains("cycleData")) {
Map<Integer, DockStation> mp = (Map<Integer, DockStation>) memcache.get("cycleData");
if (mp.containsKey(dockID)) {
buffer.append("<updatedOn>" + memcache.get("updateTime") + "</updatedOn>");
buffer.append(mp.get(dockID));
} else {
String error = "<error>dockID not found</error>";
buffer.append(error);
}
} else {
buffer.append("<error>Data Feed not available</error>");
}
buffer.append("</dockStationList>");
String xml = XmlUtils.formatXml(buffer.toString());
return xml;
}
}