/**
*
*/
package com.photoshare.service.share;
import java.io.BufferedWriter;
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.ArrayList;
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;
import com.photoshare.utils.FileTools;
import com.photoshare.utils.Utils;
/**
* @author Aron
*
*/
public class ShareBeanReader implements XMLParser<ShareBean> {
public static final String PATH = "";
public static final String FILE = "";
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadFromXML(java.lang.String,
* java.lang.String)
*/
public ShareBean loadFromXML(String path, String file) throws Exception {
ShareBean share = new ShareBean();
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(ShareBean.KEY_SHARE_ACCOUNT)) {
share.setmShareAccount(parser.nextText());
} else if (parser.getName().equals(ShareBean.KEY_SHARE_PWD)) {
share.setmSharePwd(parser.nextText());
} else if (parser.getName()
.equals(ShareBean.KEY_SHARE_TYPE)) {
share.setmShareType(ShareType.Switch(Integer
.parseInt(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 share;
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadFromXML(java.lang.Object,
* java.lang.String, java.lang.String)
*/
public void loadFromXML(ShareBean obj, String path, String file)
throws Exception {
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadListFromXML(java.lang.String,
* java.lang.String)
*/
public List<ShareBean> loadListFromXML(String path, String file)
throws Exception {
List<ShareBean> list = new ArrayList<ShareBean>();
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();
ShareBean share = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals(ShareBean.KEY_SHARE_BEAN)) {
share = new ShareBean();
} else if (parser.getName().equals(
ShareBean.KEY_SHARE_ACCOUNT)) {
share.setmShareAccount(parser.nextText());
} else if (parser.getName().equals(ShareBean.KEY_SHARE_PWD)) {
share.setmSharePwd(parser.nextText());
} else if (parser.getName()
.equals(ShareBean.KEY_SHARE_TYPE)) {
share.setmShareType(ShareType.Switch(Integer
.parseInt(parser.nextText())));
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals(ShareBean.KEY_SHARE_BEAN)) {
list.add(share);
}
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 list;
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#loadListFromXML(java.util.List,
* java.lang.String, java.lang.String)
*/
public void loadListFromXML(List<ShareBean> list, String path, String file)
throws Exception {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see com.photoshare.common.XMLParser#WriteXML(java.lang.String,
* java.lang.String, java.lang.Object)
*/
public void WriteXML(String path, String file, ShareBean share)
throws Exception {
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("", ShareBean.KEY_SHARE_BEAN);
serializer.startTag("", ShareBean.KEY_SHARE_ACCOUNT);
serializer.text(share.getmShareAccount());
serializer.endTag("", ShareBean.KEY_SHARE_ACCOUNT);
serializer.startTag("", ShareBean.KEY_SHARE_PWD);
serializer.text(share.getmSharePwd() + "");
serializer.endTag("", ShareBean.KEY_SHARE_PWD);
serializer.startTag("", ShareBean.KEY_SHARE_TYPE);
serializer.text(share.getmShareType().getType() + "");
serializer.endTag("", ShareBean.KEY_SHARE_TYPE);
serializer.endTag("", ShareBean.KEY_SHARE_BEAN);
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<ShareBean> shares)
throws Exception {
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("", ShareBean.KEY_SHARE_BEANS);
for (ShareBean share : shares) {
serializer.startTag("", ShareBean.KEY_SHARE_BEAN);
serializer.startTag("", ShareBean.KEY_SHARE_ACCOUNT);
serializer.text(share.getmShareAccount());
serializer.endTag("", ShareBean.KEY_SHARE_ACCOUNT);
serializer.startTag("", ShareBean.KEY_SHARE_PWD);
serializer.text(share.getmSharePwd() + "");
serializer.endTag("", ShareBean.KEY_SHARE_PWD);
serializer.startTag("", ShareBean.KEY_SHARE_TYPE);
serializer.text(share.getmShareType().getType() + "");
serializer.endTag("", ShareBean.KEY_SHARE_TYPE);
serializer.endTag("", ShareBean.KEY_SHARE_BEAN);
}
serializer.endTag("", ShareBean.KEY_SHARE_BEANS);
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);
}
}
}