|
|
|
@ -1,18 +1,29 @@
|
|
|
|
|
package cn.estsh.i3plus.pojo.base.common;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.annotation.XStreamCDATA;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.thoughtworks.xstream.XStream;
|
|
|
|
|
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
|
|
|
|
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
|
|
|
|
import com.thoughtworks.xstream.core.util.QuickWriter;
|
|
|
|
|
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
|
|
|
|
import com.thoughtworks.xstream.io.naming.NameCoder;
|
|
|
|
|
import com.thoughtworks.xstream.io.naming.NoNameCoder;
|
|
|
|
|
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
|
|
|
|
|
import com.thoughtworks.xstream.io.xml.XppDomDriver;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
import java.io.Writer;
|
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
import static cn.estsh.i3plus.pojo.base.common.XStreamFactory.toJavaBean;
|
|
|
|
|
import static cn.estsh.i3plus.pojo.base.common.XStreamFactory.toXml;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : Xml 工厂
|
|
|
|
@ -120,9 +131,9 @@ public class XStreamFactory {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Javabean 转XML
|
|
|
|
|
*
|
|
|
|
|
* @param <T>
|
|
|
|
|
* @return xml字符串
|
|
|
|
|
*/
|
|
|
|
@ -132,8 +143,8 @@ public class XStreamFactory {
|
|
|
|
|
for (int i = 1; i < RETRY_NUM; i++) {
|
|
|
|
|
try {
|
|
|
|
|
return headLine + xStream.toXML(t);
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
LOGGER.error("Bean To Xml Error Message:{} Number:{}",e.getMessage(),i);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
LOGGER.error("Bean To Xml Error Message:{} Number:{}", e.getMessage(), i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
@ -141,6 +152,7 @@ public class XStreamFactory {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Javabean 转XML
|
|
|
|
|
*
|
|
|
|
|
* @param <T>
|
|
|
|
|
* @return xml字符串
|
|
|
|
|
*/
|
|
|
|
@ -159,101 +171,108 @@ public class XStreamFactory {
|
|
|
|
|
public static <T> T toJavaBean(String xmlStr) {
|
|
|
|
|
return (T) xStream.fromXML(xmlStr);
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
// public static void main(String[] args) {
|
|
|
|
|
// User u = new User(0, "zhangsan0", "zhangsanpwd0");
|
|
|
|
|
// User u1 = new User(1, "zhangsan1", "zhangsanpwd");
|
|
|
|
|
// User u2 = new User(2, "zhangsan2", "zhangsanpwd");
|
|
|
|
|
// User u3 = new User(3, "zhangsan3", "zhangsanpwd");
|
|
|
|
|
//
|
|
|
|
|
// Role r1 = new Role(1, "Admin", "Admin1");
|
|
|
|
|
// Role r2 = new Role(2, "Admin", "Admin2");
|
|
|
|
|
// Role r3 = new Role(3, "Admin", "Admin3");
|
|
|
|
|
//
|
|
|
|
|
// DataAdapter ad = new DataAdapter(10086L,UUID.randomUUID().toString(),"sssfwef",u1);
|
|
|
|
|
// u1.setRole(r1);
|
|
|
|
|
//
|
|
|
|
|
// u2.getRoleList().add(r1);
|
|
|
|
|
// u2.getRoleList().add(r2);
|
|
|
|
|
// u2.getRoleList().add(r3);
|
|
|
|
|
//
|
|
|
|
|
// u3.setRole(r1);
|
|
|
|
|
// u3.getRoleList().add(r2);
|
|
|
|
|
// u3.getRoleList().add(r3);
|
|
|
|
|
//
|
|
|
|
|
// System.out.println(toXml(u) + "\n\n ");
|
|
|
|
|
// System.out.println(toXml(u1) + "\n\n ");
|
|
|
|
|
// System.out.println(toXml(u2) + "\n\n ");
|
|
|
|
|
// System.out.println(toXml(u3) + "\n\n ");
|
|
|
|
|
// System.out.println(toXml(ad) + "\n\n ");
|
|
|
|
|
//
|
|
|
|
|
// System.out.println(JSON.toJSONString(toJavaBean(toXml(ad))));
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
//@Data
|
|
|
|
|
//@XStreamAlias("DataAdapter")
|
|
|
|
|
////对应carInfos元素
|
|
|
|
|
//class DataAdapter implements Serializable {
|
|
|
|
|
//
|
|
|
|
|
// @XStreamAsAttribute
|
|
|
|
|
// private Long scId;
|
|
|
|
|
// private String key;
|
|
|
|
|
// @XStreamCDATA
|
|
|
|
|
// private String resultData;
|
|
|
|
|
//
|
|
|
|
|
// private Object auth;
|
|
|
|
|
//
|
|
|
|
|
// public DataAdapter(Long scId, String key, String resultData, Object auth) {
|
|
|
|
|
// this.scId = scId;
|
|
|
|
|
// this.key = key;
|
|
|
|
|
// this.resultData = resultData;
|
|
|
|
|
// this.auth = auth;
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//@Data
|
|
|
|
|
//@XStreamAlias("user")
|
|
|
|
|
////对应carInfos元素
|
|
|
|
|
//class User implements Serializable {
|
|
|
|
|
// private static final long serialVersionUID = -7554548655397869156L;
|
|
|
|
|
//
|
|
|
|
|
// @XStreamAsAttribute
|
|
|
|
|
// private Integer id;
|
|
|
|
|
// private String loginName;
|
|
|
|
|
// private String loginPwd;
|
|
|
|
|
//
|
|
|
|
|
// private Role role;
|
|
|
|
|
// private List<Role> roleList = new ArrayList<Role>();
|
|
|
|
|
// private List<Role> roleArray;
|
|
|
|
|
//
|
|
|
|
|
// public User() {
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// public User(Integer id, String loginName, String loginPwd) {
|
|
|
|
|
// this.id = id;
|
|
|
|
|
// this.loginName = loginName;
|
|
|
|
|
// this.loginPwd = loginPwd;
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//@Data
|
|
|
|
|
//@XStreamAlias("role")
|
|
|
|
|
////对应carInfos元素
|
|
|
|
|
//class Role implements Serializable {
|
|
|
|
|
// private static final long serialVersionUID = -3134157833696958743L;
|
|
|
|
|
// @XStreamAsAttribute
|
|
|
|
|
// private Integer id;
|
|
|
|
|
// private String roleName;
|
|
|
|
|
// private String roleCode;
|
|
|
|
|
//
|
|
|
|
|
// public Role() {
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// public Role(Integer id, String roleName, String roleCode) {
|
|
|
|
|
// this.id = id;
|
|
|
|
|
// this.roleName = roleName;
|
|
|
|
|
// this.roleCode = roleCode;
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
class Test {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
User u = new User(0, "zhangsan0", "zhangsanpwd0");
|
|
|
|
|
User u1 = new User(1, "zhangsan1", "zhangsanpwd");
|
|
|
|
|
User u2 = new User(2, "zhangsan2", "zhangsanpwd");
|
|
|
|
|
User u3 = new User(3, "zhangsan3", "zhangsanpwd");
|
|
|
|
|
|
|
|
|
|
Role r1 = new Role(1, "Admin", "Admin1");
|
|
|
|
|
Role r2 = new Role(2, "Admin", "Admin2");
|
|
|
|
|
Role r3 = new Role(3, "Admin", "Admin3");
|
|
|
|
|
|
|
|
|
|
DataAdapter ad = new DataAdapter(10086L, UUID.randomUUID().toString(), "sssfwef", u1);
|
|
|
|
|
u1.setRole(r1);
|
|
|
|
|
|
|
|
|
|
u2.getRoleList().add(r1);
|
|
|
|
|
u2.getRoleList().add(r2);
|
|
|
|
|
u2.getRoleList().add(r3);
|
|
|
|
|
|
|
|
|
|
u3.setRole(r1);
|
|
|
|
|
u3.getRoleList().add(r2);
|
|
|
|
|
u3.getRoleList().add(r3);
|
|
|
|
|
|
|
|
|
|
System.out.println(toXml(u) + "\n\n ");
|
|
|
|
|
System.out.println(toXml(u1) + "\n\n ");
|
|
|
|
|
System.out.println(toXml(u2) + "\n\n ");
|
|
|
|
|
System.out.println(toXml(u3) + "\n\n ");
|
|
|
|
|
System.out.println(toXml(ad) + "\n\n ");
|
|
|
|
|
|
|
|
|
|
System.out.println(JSON.toJSONString(toJavaBean(toXml(ad))));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Data
|
|
|
|
|
@XStreamAlias("DataAdapter")
|
|
|
|
|
static
|
|
|
|
|
//对应carInfos元素
|
|
|
|
|
class DataAdapter implements Serializable {
|
|
|
|
|
|
|
|
|
|
@XStreamAsAttribute
|
|
|
|
|
private Long scId;
|
|
|
|
|
private String key;
|
|
|
|
|
@XStreamCDATA
|
|
|
|
|
private String resultData;
|
|
|
|
|
|
|
|
|
|
private Object auth;
|
|
|
|
|
|
|
|
|
|
public DataAdapter(Long scId, String key, String resultData, Object auth) {
|
|
|
|
|
this.scId = scId;
|
|
|
|
|
this.key = key;
|
|
|
|
|
this.resultData = resultData;
|
|
|
|
|
this.auth = auth;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Data
|
|
|
|
|
@XStreamAlias("user")
|
|
|
|
|
static
|
|
|
|
|
//对应carInfos元素
|
|
|
|
|
class User implements Serializable {
|
|
|
|
|
private static final long serialVersionUID = -7554548655397869156L;
|
|
|
|
|
|
|
|
|
|
@XStreamAsAttribute
|
|
|
|
|
private Integer id;
|
|
|
|
|
private String loginName;
|
|
|
|
|
private String loginPwd;
|
|
|
|
|
|
|
|
|
|
private Role role;
|
|
|
|
|
private List<Role> roleList = new ArrayList<Role>();
|
|
|
|
|
private List<Role> roleArray;
|
|
|
|
|
|
|
|
|
|
public User() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public User(Integer id, String loginName, String loginPwd) {
|
|
|
|
|
this.id = id;
|
|
|
|
|
this.loginName = loginName;
|
|
|
|
|
this.loginPwd = loginPwd;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Data
|
|
|
|
|
@XStreamAlias("role")
|
|
|
|
|
static
|
|
|
|
|
//对应carInfos元素
|
|
|
|
|
class Role implements Serializable {
|
|
|
|
|
private static final long serialVersionUID = -3134157833696958743L;
|
|
|
|
|
@XStreamAsAttribute
|
|
|
|
|
private Integer id;
|
|
|
|
|
private String roleName;
|
|
|
|
|
private String roleCode;
|
|
|
|
|
|
|
|
|
|
public Role() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Role(Integer id, String roleName, String roleCode) {
|
|
|
|
|
this.id = id;
|
|
|
|
|
this.roleName = roleName;
|
|
|
|
|
this.roleCode = roleCode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|