Clean up XStream examples

This commit is contained in:
David Morley
2016-04-04 05:18:35 -05:00
parent dd61036a31
commit ed629e7a49
63 changed files with 1060 additions and 1072 deletions
@@ -0,0 +1,46 @@
package com.baeldung.annotation.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.util.Date;
@XStreamAlias("customer")
public class Customer {
@XStreamAlias("fn")
private String firstName;
private String lastName;
private Date dob;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
@Override
public String toString() {
return "Customer [firstName=" + firstName + ", lastName=" + lastName
+ ", dob=" + dob + "]";
}
}
@@ -0,0 +1,50 @@
package com.baeldung.annotation.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import java.util.Date;
@XStreamAlias("customer")
public class CustomerOmitField {
@XStreamOmitField
private String firstName;
private String lastName;
private Date dob;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
@Override
public String toString() {
return "CustomerOmitAnnotation [firstName=" + firstName + ", lastName="
+ lastName + ", dob=" + dob + "]";
}
}
@@ -0,0 +1,46 @@
package com.baeldung.complex.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("ContactDetails")
public class ContactDetails {
private String mobile;
private String landline;
@XStreamAsAttribute
private String contactType;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getLandline() {
return landline;
}
public void setLandline(String landline) {
this.landline = landline;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
@Override
public String toString() {
return "ContactDetails [mobile=" + mobile + ", landline=" + landline
+ ", contactType=" + contactType + "]";
}
}
@@ -0,0 +1,57 @@
package com.baeldung.complex.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.util.Date;
import java.util.List;
@XStreamAlias("customer")
public class Customer {
private String firstName;
private String lastName;
private Date dob;
private List<ContactDetails> contactDetailsList;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
public List<ContactDetails> getContactDetailsList() {
return contactDetailsList;
}
public void setContactDetailsList(List<ContactDetails> contactDetailsList) {
this.contactDetailsList = contactDetailsList;
}
@Override
public String toString() {
return "Customer [firstName=" + firstName + ", lastName=" + lastName
+ ", dob=" + dob + ", contactDetailsList=" + contactDetailsList
+ "]";
}
}
@@ -0,0 +1,46 @@
package com.baeldung.implicit.collection.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("ContactDetails")
public class ContactDetails {
private String mobile;
private String landline;
@XStreamAsAttribute
private String contactType;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getLandline() {
return landline;
}
public void setLandline(String landline) {
this.landline = landline;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
@Override
public String toString() {
return "ContactDetails [mobile=" + mobile + ", landline=" + landline
+ ", contactType=" + contactType + "]";
}
}
@@ -0,0 +1,59 @@
package com.baeldung.implicit.collection.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import java.util.Date;
import java.util.List;
@XStreamAlias("customer")
public class Customer {
private String firstName;
private String lastName;
private Date dob;
@XStreamImplicit
private List<ContactDetails> contactDetailsList;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
public List<ContactDetails> getContactDetailsList() {
return contactDetailsList;
}
public void setContactDetailsList(List<ContactDetails> contactDetailsList) {
this.contactDetailsList = contactDetailsList;
}
@Override
public String toString() {
return "Customer [firstName=" + firstName + ", lastName=" + lastName
+ ", dob=" + dob + ", contactDetailsList=" + contactDetailsList
+ "]";
}
}
@@ -0,0 +1,19 @@
package com.baeldung.initializer;
import com.thoughtworks.xstream.XStream;
public class SimpleXstreamInitializer {
private XStream xtreamInstance;
public XStream getXstreamInstance() {
if (xtreamInstance == null) {
synchronized (SimpleXstreamInitializer.class) {
if (xtreamInstance == null) {
xtreamInstance = new XStream();
}
}
}
return xtreamInstance;
}
}
@@ -0,0 +1,40 @@
package com.baeldung.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.util.List;
@XStreamAlias("AddressDetails")
public class AddressDetails {
private String address;
private String zipcode;
private List<ContactDetails> contactDetails;
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public List<ContactDetails> getContactDetails() {
return contactDetails;
}
public void setContactDetails(List<ContactDetails> contactDetails) {
this.contactDetails = contactDetails;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
@@ -0,0 +1,28 @@
package com.baeldung.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("ContactDetails")
public class ContactDetails {
private String mobile;
private String landline;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getLandline() {
return landline;
}
public void setLandline(String landline) {
this.landline = landline;
}
}
@@ -0,0 +1,57 @@
package com.baeldung.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import java.util.Date;
import java.util.List;
@XStreamAlias("customer")
public class Customer {
private String firstName;
private String lastName;
private Date dob;
@XStreamImplicit
private List<ContactDetails> contactDetailsList;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
public List<ContactDetails> getContactDetailsList() {
return contactDetailsList;
}
public void setContactDetailsList(List<ContactDetails> contactDetailsList) {
this.contactDetailsList = contactDetailsList;
}
@Override
public String toString() {
return "Customer [firstName=" + firstName + ", lastName=" + lastName + ", dob=" + dob + "]";
}
}
@@ -0,0 +1,50 @@
package com.baeldung.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.util.List;
@XStreamAlias("CustomerAddressDetails")
public class CustomerAddressDetails {
private List<AddressDetails> addressDetails;
private String firstName;
private String lastName;
private int age;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<AddressDetails> getAddressDetails() {
return addressDetails;
}
public void setAddressDetails(List<AddressDetails> addressDetails) {
this.addressDetails = addressDetails;
}
}
@@ -0,0 +1,20 @@
package com.baeldung.pojo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.util.List;
@XStreamAlias("CustomerPortfolio")
public class CustomerPortfolio {
private List<CustomerAddressDetails> customerAddressDetailsList;
public List<CustomerAddressDetails> getCustomerAddressDetailsList() {
return customerAddressDetailsList;
}
public void setCustomerAddressDetailsList(List<CustomerAddressDetails> customerAddressDetailsList) {
this.customerAddressDetailsList = customerAddressDetailsList;
}
}
@@ -0,0 +1,40 @@
package com.baeldung.utility;
import com.thoughtworks.xstream.converters.ConversionException;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
public class MyDateConverter implements Converter {
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
@Override
public boolean canConvert(Class clazz) {
return Date.class.isAssignableFrom(clazz);
}
@Override
public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext arg2) {
Date date = (Date) value;
writer.setValue(formatter.format(date));
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) {
GregorianCalendar calendar = new GregorianCalendar();
try {
calendar.setTime(formatter.parse(reader.getValue()));
} catch (ParseException e) {
throw new ConversionException(e.getMessage(), e);
}
return calendar;
}
}
@@ -0,0 +1,28 @@
package com.baeldung.utility;
import com.baeldung.pojo.Customer;
import com.thoughtworks.xstream.converters.SingleValueConverter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MySingleValueConverter implements SingleValueConverter {
@Override
public boolean canConvert(Class clazz) {
return Customer.class.isAssignableFrom(clazz);
}
@Override
public Object fromString(String arg0) {
return null;
}
@Override
public String toString(Object obj) {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date date = ((Customer) obj).getDob();
return ((Customer) obj).getFirstName() + "," + ((Customer) obj).getLastName() + "," + formatter.format(date);
}
}
@@ -0,0 +1,37 @@
package com.baeldung.utility;
import com.baeldung.pojo.ContactDetails;
import com.baeldung.pojo.Customer;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class SimpleDataGeneration {
public static Customer generateData() {
Customer customer = new Customer();
Calendar cal = Calendar.getInstance();
cal.set(1986, 01, 14);
customer.setDob(cal.getTime());
customer.setFirstName("XStream");
customer.setLastName("Java");
List<ContactDetails> contactDetailsList = new ArrayList<ContactDetails>();
ContactDetails contactDetails1 = new ContactDetails();
contactDetails1.setLandline("0124-2460311");
contactDetails1.setMobile("6673543265");
ContactDetails contactDetails2 = new ContactDetails();
contactDetails2.setLandline("0120-223312");
contactDetails2.setMobile("4676543565");
contactDetailsList.add(contactDetails1);
contactDetailsList.add(contactDetails2);
customer.setContactDetailsList(contactDetailsList);
return customer;
}
}