BeanUtilsExampleV2.java Source code

Java tutorial

Introduction

Here is the source code for BeanUtilsExampleV2.java

Source

    import org.apache.commons.beanutils.BeanUtils;

    import java.util.Map;
    import java.util.Date;
    import java.util.List;
    import java.util.HashMap;
    import java.util.ArrayList;
    import java.util.GregorianCalendar;

public class BeanUtilsExampleV2 {
  public static void main(String args[]) throws Exception {
      BeanUtilsExampleV2 diff = new BeanUtilsExampleV2();
      Movie movieBean = diff.prepareData();

      // create a new Movie with the same properties
      Movie newMovieBean = new Movie();
      BeanUtils.copyProperties(newMovieBean, movieBean);
      // Movie newMovieBean = (Movie)BeanUtils.cloneBean(movieBean);

      // change its title
      BeanUtils.setProperty(newMovieBean, "title", "Quills");

      // and date
      BeanUtils.setProperty(
         newMovieBean,
         "dateOfRelease",
         new GregorianCalendar(2000, 0, 1).getTime());

      // and director name
      BeanUtils.setProperty(newMovieBean, "director.name", "Philip Kaufman");

      // and director's home number
      BeanUtils.setProperty(
         newMovieBean,
         "director.contactNumber(Home)",
         "3349084333");

      System.err.println(BeanUtils.getProperty(movieBean, "title"));
      System.err.println(BeanUtils.getProperty(movieBean, "director.name"));
      System.err.println(BeanUtils.getProperty(
         newMovieBean,
         "director.contactNumber(Home)"));
  }

  private Movie prepareData() {
      Movie movie = new Movie();
      movie.setTitle("The Italian Job");
      movie.setDateOfRelease(new GregorianCalendar(1969, 0, 1).getTime());

      // sets the genre
      Map genre_map = new HashMap();
      genre_map.put("THR", "Thriller");
      genre_map.put("ACT", "Action");

      movie.setGenre(genre_map);

      // creates the Director
      Person director = new Person();
      director.setName("Peter Collinson");
      director.setGender(1);
      Map director_contacts = new HashMap();
      director_contacts.put("Home", "99922233");
      director_contacts.put("Mobile", "0343343433");
      director.setContactNumber(director_contacts);

      movie.setDirector(director);

      // create the actors
      Actor actor1 = new Actor();
      actor1.setName("Michael Caine");
      actor1.setGender(1);
      actor1.setWorth(10000000);
      List actor1_movies = new ArrayList();

      Movie movie2 = new Movie();
      movie2.setTitle("The Fourth Protocol");

      Movie movie3 = new Movie();
      movie3.setTitle("Shiner");

      actor1_movies.add(movie2);
      actor1_movies.add(movie3);

      actor1.setMovieCredits(actor1_movies);

      Actor actor2 = new Actor();
      actor2.setName("Margaret Blye");
      actor2.setGender(2);
      actor2.setWorth(20000000);

      List actors = new ArrayList();
      actors.add(actor1);
      actors.add(actor2);

      movie.setActors(actors);

      return movie;
   }
}----------------------------------------------------------------------------

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;
    }----------------------------------------------------------------------------

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;
    }