package net.codjo.dataprocess.common.util;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import java.util.List;
/**
*
*/
public class UserLoginTracker {
private String userName;
private String repository;
private String ipaddr;
private String hostname;
private String date;
public UserLoginTracker(String userName,
String repository,
String ipaddr,
String hostname,
String date) {
this.userName = userName;
this.repository = repository;
this.ipaddr = ipaddr;
this.hostname = hostname;
this.date = date;
}
public static String encode(UserLoginTracker userLoginTracker) {
XStream xstream = new XStream(new DomDriver());
alias(xstream);
return xstream.toXML(userLoginTracker);
}
public static UserLoginTracker decode(String xml) {
XStream xstream = new XStream(new DomDriver());
alias(xstream);
return (UserLoginTracker)xstream.fromXML(xml);
}
public static String encodeList(List<UserLoginTracker> list) {
XStream xstream = new XStream(new DomDriver());
UserLoginTrackerList userLoginTrackerList = new UserLoginTrackerList();
userLoginTrackerList.setList(list);
aliasList(xstream);
return xstream.toXML(userLoginTrackerList);
}
public static List<UserLoginTracker> decodeList(String xml) {
XStream xstream = new XStream(new DomDriver());
aliasList(xstream);
UserLoginTrackerList userLoginTrackerList = (UserLoginTrackerList)xstream.fromXML(xml);
return userLoginTrackerList.getList();
}
private static void alias(XStream xstream) {
xstream.alias("UserLoginTracker", UserLoginTracker.class);
}
private static void aliasList(XStream xstream) {
xstream.alias("UserLoginTrackerList", UserLoginTrackerList.class);
xstream.alias("UserLoginTracker", UserLoginTracker.class);
xstream.addImplicitCollection(UserLoginTrackerList.class, "list");
}
public String getUserName() {
return userName;
}
public String getRepository() {
return repository;
}
public String getIpaddr() {
return ipaddr;
}
public String getHostname() {
return hostname;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
private static class UserLoginTrackerList {
private List<UserLoginTracker> list;
public void setList(List<UserLoginTracker> userLoginTrackerList) {
list = userLoginTrackerList;
}
public List<UserLoginTracker> getList() {
return list;
}
}
}