/**
*
*/
package com.photoshare.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
import android.util.Xml;
import com.photoshare.common.XMLParser;
/**
* @author Aron
*
* This class is used to write the key-value pairs contained in the User
* class {@link User} into XML File, and read the XML File into the User
* class {@link User}
*
*/
public class UserReader implements XMLParser<User> {
public static final String USER_PATH = Utils.SDCARD_ABSOLUTE_PATH
+ File.separator + Utils.APP_NAME + File.separator + Utils.DIR_USR;
public static final String USER_FILE_NAME = "user.xml";
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadFromXML(java.lang.String,
* java.lang.String)
*/
public User loadFromXML(String path, String file) throws Exception {
User user = User.getInstance();
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
InputStream stream = FileTools.ReadFile(path, file);
parser.setInput(stream, Utils.ENCODE_UTF_8);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals(User.KEY_MAIL)) {
user.setMail(parser.nextText());
} else if (parser.getName().equals(User.KEY_PWD)) {
user.setPwd(parser.nextText());
} else if (parser.getName().equals(User.KEY_CONFIGURE)) {
user.setConfigured(Boolean.parseBoolean(parser
.nextText()));
}
break;
case XmlPullParser.END_TAG:
break;
}
eventType = parser.next();
}
} catch (NumberFormatException e) {
throw new Exception(e);
} catch (XmlPullParserException e) {
throw new Exception(e);
} catch (IOException e) {
throw new Exception(e);
}
return user;
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadListFromXML(java.lang.String,
* java.lang.String)
*/
public List<User> loadListFromXML(String path, String file)
throws Exception {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#WriteXML(java.lang.String,
* java.lang.String, java.lang.Object)
*/
public void WriteXML(String path, String file, User user) throws Exception {
// TODO Auto-generated method stub
try {
OutputStream outStream = FileTools.OpenFile(path, file);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(
outStream, "UTF-8");
BufferedWriter writer = new BufferedWriter(outStreamWriter);
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(writer);
// <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
serializer.startDocument(Utils.ENCODE_UTF_8, true);
serializer.startTag("", User.KEY_MAIL);
serializer.text(user.getMail());
serializer.endTag("", User.KEY_MAIL);
serializer.startTag("", User.KEY_PWD);
serializer.text(user.getPwd());
serializer.endTag("", User.KEY_PWD);
serializer.startTag("", User.KEY_CONFIGURE);
serializer.text(user.isConfigured() + "");
serializer.endTag("", User.KEY_CONFIGURE);
serializer.endDocument();
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
throw new Exception(e);
} catch (UnsupportedEncodingException e) {
throw new Exception(e);
} catch (IOException e) {
throw new Exception(e);
}
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#WriteXML(java.lang.String,
* java.lang.String, java.util.List)
*/
public void WriteXML(String path, String file, List<User> types)
throws Exception {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadFromXML(java.lang.Object,
* java.lang.String, java.lang.String)
*/
public void loadFromXML(User obj, String path, String file)
throws Exception {
obj = loadFromXML(path, file);
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadListFromXML(java.util.List,
* java.lang.String, java.lang.String)
*/
public void loadListFromXML(List<User> list, String path, String file)
throws Exception {
// TODO Auto-generated method stub
}
}