Mega Code Archive

 
Categories / Java / Apache Common
 

Convert Utils Demo

import org.apache.commons.beanutils.Converter; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.ConvertUtilsBean; import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.commons.beanutils.ConversionException; import java.util.Map; public class BeanUtilsExampleV4 {   public static void main(String args[]) throws Exception {     BeanUtilsExampleV4 diff = new BeanUtilsExampleV4();     Actor actor = diff.prepareData();     ConvertUtilsBean convertUtilsBean = new ConvertUtilsBean();     convertUtilsBean.deregister(String.class);     convertUtilsBean.register(new MyStringConverter(), String.class);     convertUtilsBean.deregister(Long.class);     convertUtilsBean.register(new MyLongConverter(), Long.class);     convertUtilsBean.register(new MyLongConverter(), Long.TYPE);     BeanUtilsBean beanUtilsBean =       new BeanUtilsBean(convertUtilsBean, new PropertyUtilsBean());     System.err.println("==== Values before calling describe ==== ");     System.err.println("By PropertyUtils: " +       PropertyUtils.getProperty(actor, "name"));     System.err.println("By BeanUtils: " +       beanUtilsBean.getProperty(actor, "name"));     System.err.println(beanUtilsBean.getProperty(actor, "worth"));     Map describedData = beanUtilsBean.describe(actor);     // check the map     System.err.println("==== Values in Map ==== ");     System.err.println(describedData.get("name"));     System.err.println(describedData.get("worth"));     // create a new Actor Bean     Actor newActor = new Actor();     beanUtilsBean.populate(newActor, describedData);     System.err.println("==== Values after calling populate ==== ");     System.err.println(beanUtilsBean.getProperty(newActor, "name"));     System.err.println(beanUtilsBean.getProperty(newActor, "worth"));   }   private Actor prepareData() {     Actor actor = new Actor();     actor.setName("Michael Caine");     actor.setGender(1);     actor.setWorth(10000000);     return actor;   } } class MyStringConverter implements Converter {   public Object convert(Class type, Object value) {     if(value == null) {       return (String)null;     } else {       return (value.toString().replaceAll("\\s", ""));     }   } } class MyLongConverter implements Converter {   private Object defaultValue;   private boolean useDefault;   public MyLongConverter() {     this(true, new Long(0));   }   public MyLongConverter(boolean useDefault, Object defaultValue) {     this.useDefault = useDefault;     this.defaultValue = defaultValue;   }   public Object convert(Class type, Object value) {     if(value == null) {       if(useDefault) {         return defaultValue;       } else {         throw new ConversionException("No default value specified");       }     }     if(value instanceof Long) {       return new Long(((Long)value).longValue() + 1000);     } else {       try {         return new Long(new Long(value.toString()).longValue() + 1000);       } catch (Exception e) {         System.err.println(e);         if(useDefault) {           return defaultValue;         } else {           throw new ConversionException(e);         }       }     }   } } ------------------------------------------------------------------------ import java.util.Map; import java.util.List; import java.util.Date; public class Movie {   public Movie() {   }   public Date getDateOfRelease() { return this.dateOfRelease; }   public void setDateOfRelease(Date dateOfRelease) {     this.dateOfRelease = dateOfRelease;   }   public String getTitle() { return this.title; }   public void setTitle(String title) {this.title = title; }   public Person getDirector() { return this.director; }   public void setDirector(Person director) { this.director = director; }   public List getActors() { return this.actors; }   public void setActors(List actors) { this.actors= actors; }   public String[] getKeywords() { return this.keywords; }   public void setKeyWords(String[] keywords) { this.keywords = keywords; }   public Map getGenre() { return this.genre; }   public void setGenre(Map genre) { this.genre = genre; }   private Date dateOfRelease;   private String title;   private Person director;   private List actors;   private String[] keywords;   private Map genre; } ------------------------------------------------------------------------ import java.util.Map; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; public class Person {   public Person() {   }   public String getName() {     return this.name == null ? "NoName" : this.name; }   public void setName(String name) { this.name = name; }   public int getGender() { return this.gender; }   public void setGender(int gender) {  // 0 - Indeterminate, 1 - Male, 2 - Female     this.gender = (gender > 2 || gender < 0) ? 0 : gender; }   public Map getContactNumber() { return this.contactNumber; }   public void setContactNumber(Map contactNumber) {     this.contactNumber = contactNumber;   }   /**public boolean equals(Object o) {     if(o == this) return true;     if(!(o instanceof Person)) return false;     Person otherPerson = (Person)o;     if(otherPerson.getName().equals(this.name) &&        otherPerson.getGender() == this.gender) return true;     return false;   }*/   public boolean equals(Object o) {     if(!(o instanceof Person)) return false;     Person otherPerson = (Person)o;     return new EqualsBuilder()                .append(name, otherPerson.getName())                .append(gender, otherPerson.getGender())                .isEquals();   }   public int hashCode() {     return new HashCodeBuilder(7, 51)                .append(name)                .append(gender)                .append(contactNumber)                .toHashCode();   }   public String toString() {     return new ToStringBuilder(this)                .append("Name", name)                .append("Gender", gender)                .append("Contact Details", contactNumber)                .toString();   }   private String name;   private int gender;   private Map contactNumber; } ------------------------------------------------------------------------ import java.util.List; public class Actor extends Person {   public Actor() {   }   public List getMovieCredits() { return this.movieCredits; }   public void setMovieCredits(List movieCredits) {     this.movieCredits = movieCredits;   }   public long getWorth() { return this.worth; }   public void setWorth(long worth) { this.worth = worth; }   private List movieCredits;   private long worth; }                     BeanUtilsExampleV4.zip( 881 k)