package fr.insa.lyon.ot.sims.pizza;
import java.io.StringReader;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Locale;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import android.util.Log;
// Request example :
//<request><id>id1</id><user><name>Paul DUPOND</name><phone>123456778</phone><email>paul.dupond@xxx.fr</email></user><search><what>Pizza</what><when><start>1268056620</start><end>1268056620</end><delta>3600</delta></when><where><from><latitude>3.503</latitude><longitude>50.5</longitude><address>INSA</address><city>VILLEURBANNE</city><zipCode>69100</zipCode></from><to><latitude>3.503</latitude><longitude>50.5</longitude><address>INSA</address><city>VILLEURBANNE</city><zipCode>69100</zipCode></to></where><more></more></search></request>
public class Request {
private String id;
private User user;
private String what;
private long whenStart;
private long whenEnd;
private int whenDelta;
private GeoPosition fromLocation;
private GeoPosition toLocation;
public Request(String xmlStr) {
/*id = "id1";
user = new User("Jean DUPONT",555092,"email@mail.com");
what = "pizza";
whenStart = 1268042304;
whenEnd = 1268042304;
whenDelta = 7200;
fromLocation = new GeoPosition(41, 14, "INSA", "Lyon", "69100");
toLocation = new GeoPosition(41, 14, "INSA", "Lyon", "69100");*/
try {
// Create SAX 2 parser...
Log.d("Request", "in constructor");
System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");
XMLReader xr = XMLReaderFactory.createXMLReader();
Log.d("Request", "createXMLReader");
// Set the ContentHandler...
MyXmlHandler myXmlHandler = new MyXmlHandler();
xr.setContentHandler( myXmlHandler );
// Parse the file...how do I give it the file???
xr.parse(new InputSource(new StringReader(xmlStr)));
id = myXmlHandler.getId();
user = myXmlHandler.getUser();
what = myXmlHandler.getWhat();
whenStart = myXmlHandler.getWhenStart();
whenEnd = myXmlHandler.getWhenEnd();
whenDelta = myXmlHandler.getWhenDelta();
fromLocation = myXmlHandler.getFromLocation();
toLocation = myXmlHandler.getToLocation();
}catch ( Exception e ) {
Log.e("Request", e.getMessage());
}
}
public Request(User userInfo, String whatDescription, long time, long time2, int delta, GeoPosition from, GeoPosition to)
{
id = "0";
user = userInfo;
what = whatDescription;
whenStart = time;
whenEnd = time2;
whenDelta = delta;
fromLocation = from;
toLocation = to;
}
public void setUser(String name, int phone, String email) {
user = new User(name, phone, email);
user.setUserName(name);
user.setUserPhone(phone);
user.setUserEmail(email);
}
public void setWhat(String whatDescription) {
what = whatDescription;
}
public void setWhenStart(long start) {
whenStart = start;
}
public void setWhenEnd(long end) {
whenEnd = end;
}
public void setWhenDelta(int delta) {
whenDelta = delta;
}
public void setFromLocation(double lat, double longi, String addr, String cityName, String zCode) {
fromLocation = new GeoPosition(lat, longi, addr, cityName, zCode);
fromLocation.setLatitude(lat);
fromLocation.setLongitude(longi);
fromLocation.setAddress(addr);
fromLocation.setCity(cityName);
fromLocation.setZipCode(zCode);
}
public void setToLocation(double lat, double longi, String addr, String cityName, String zCode) {
toLocation.setLatitude(lat);
toLocation.setLongitude(longi);
toLocation.setAddress(addr);
toLocation.setCity(cityName);
toLocation.setZipCode(zCode);
}
public String getId() {
return id;
}
public User getUser() {
return user;
}
public String getWhat() {
return what;
}
public long getWhenStart() {
return whenStart;
}
public long getWhenEnd() {
return whenEnd;
}
public int getWhenDelta() {
return whenDelta;
}
public GeoPosition getFromLocation() {
return fromLocation;
}
public GeoPosition getToLocation() {
return toLocation;
}
public String getXML()
{
StringBuffer XMLstring = new StringBuffer();
XMLstring.append("<root><service><id>0</id><name></name><targetApp>"+"pizza"+"</targetApp><method>DefaultMethod</method></service>");
XMLstring.append("<request><id>");
XMLstring.append(id);
XMLstring.append("</id><user>");
XMLstring.append(user.getXML());
XMLstring.append("</user><search><what>");
XMLstring.append(what);
XMLstring.append("</what><when><start>");
XMLstring.append(whenStart);
XMLstring.append("</start><end>");
XMLstring.append(whenEnd);
XMLstring.append("</end><delta>");
XMLstring.append(whenDelta);
XMLstring.append("</delta></when><where><from>");
XMLstring.append(fromLocation.getXML());
XMLstring.append("</from><to>");
XMLstring.append(toLocation.getXML());
XMLstring.append("</to></where><more></more></search></request></root>");
String result = XMLstring.toString();
return result;
}
public String getDescription() {
final Calendar c = Calendar.getInstance();
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.FRANCE);
c.setTimeInMillis(whenStart*1000);
String result = "Pizza in : " + fromLocation.getAddress() + " " + fromLocation.getCity() + " " + fromLocation.getZipCode() + "\n" + "on " + df.format(c.getTime());
return result;
}
}
|