Java/Apache Common/Bean Utils

Материал из Java эксперт
Перейти к: навигация, поиск

BeanUtil Array Utils Example

   <source lang="java">

import org.apache.rumons.lang.ArrayUtils; public class ArrayUtilsExampleV1 {

 public static void main(String args[]) {
   long[] longArray = new long[] {10000, 30, 99};
   String[] stringArray = new String[] {"abc", "def", "fgh"};
   long[] clonedArray = ArrayUtils.clone(longArray);
   System.err.println(
     ArrayUtils.toString((ArrayUtils.toObject(clonedArray))));
   System.err.println(ArrayUtils.indexOf(stringArray, "def"));
   ArrayUtils.reverse(stringArray);
   System.err.println(ArrayUtils.toString(stringArray));
 }

}

      </source>
   
  
 
  



BeanUtils Collections 2

   <source lang="java">

import org.apache.rumons.beanutils.BeanPredicate; import org.apache.rumons.collections.PredicateUtils; public class BeanUtilsCollectionsV2 {

 public static void main(String args[]) {
   BeanPredicate predicate =
     new BeanPredicate("title", PredicateUtils.uniquePredicate());
   Movie movie = new Movie();
   movie.setTitle("The Italian Job");
   Movie movie1 = new Movie();
   movie1.setTitle("The Italian Job");
   System.err.println(predicate.evaluate(movie)); // evaluates true
   System.err.println(predicate.evaluate(movie1)); // evaluates false
 }

}


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.rumons.lang.builder.EqualsBuilder; import org.apache.rumons.lang.builder.HashCodeBuilder; import org.apache.rumons.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;

}

      </source>
   
  
 
  



BeanUtils Date Utils

   <source lang="java">

import org.apache.rumons.lang.time.DateUtils; import java.util.Date; import java.util.Calendar; import java.util.Iterator; import java.util.GregorianCalendar; public class DateUtilsV1 {

 public static void main(String args[]) {
   GregorianCalendar calendar = new GregorianCalendar(1974, 5, 25, 6, 30, 30);
   Date date = calendar.getTime();
   System.err.println("Original Date: " + date);
   System.err.println("Rounded Date: " + DateUtils.round(date, Calendar.HOUR));
   System.err.println("Truncated Date: " +  DateUtils.truncate(date, Calendar.MONTH));
   Iterator itr = DateUtils.iterator(date, DateUtils.RANGE_WEEK_MONDAY);
   while(itr.hasNext()) {
     System.err.println(((Calendar)itr.next()).getTime());
   }
 }

}


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.rumons.lang.builder.EqualsBuilder; import org.apache.rumons.lang.builder.HashCodeBuilder; import org.apache.rumons.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;

}

      </source>
   
  
 
  



Bean Utils: deal with collections

   <source lang="java">

import org.apache.rumons.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 BeanUtilsExampleV3 {

 public static void main(String args[]) throws Exception {
   BeanUtilsExampleV3 diff = new BeanUtilsExampleV3();
   Actor actor = diff.prepareData();
   Map describedData = BeanUtils.describe(actor);
   // check the map
   System.err.println(describedData.get("name"));
   // change this value
   describedData.put("name", "Robert Redford");
   // create a new Actor Bean
   Actor newActor = new Actor();
   BeanUtils.populate(newActor, describedData);
   System.err.println(BeanUtils.getProperty(newActor, "name"));
 }
 private Actor prepareData() {
   Actor actor = new Actor();
   actor.setName("Michael Caine");
   actor.setGender(1);
   actor.setWorth(10000000);
   return actor;
 }

}


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.rumons.lang.builder.EqualsBuilder; import org.apache.rumons.lang.builder.HashCodeBuilder; import org.apache.rumons.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;

}

      </source>
   
  
 
  



BeanUtils get Property from Dynamic Beans

   <source lang="java">

import org.apache.rumons.beanutils.DynaBean; import org.apache.rumons.beanutils.DynaClass; import org.apache.rumons.beanutils.BeanUtils; import org.apache.rumons.beanutils.LazyDynaBean; import org.apache.rumons.beanutils.DynaProperty; import org.apache.rumons.beanutils.BasicDynaClass; import java.util.Map; import java.util.List; import java.util.Date; import java.util.HashMap; import java.util.GregorianCalendar; public class DynaBeansExampleV1 {

 public static void main(String args[]) throws Exception {
   Object movie = createMovieBean();
   System.err.println(BeanUtils.getProperty(movie, "title"));
   System.err.println(BeanUtils.getProperty(movie, "director.name"));
 }
 private static Object createMovieBean() throws Exception {
   // first create the properties
   DynaProperty properties[] = new DynaProperty[] {
     new DynaProperty("title", String.class),
     new DynaProperty("dateOfRelease", Date.class),
     new DynaProperty("keywords", String[].class),
     new DynaProperty("genre", Map.class),
     new DynaProperty("actors", List.class),
     new DynaProperty("director", DynaBean.class)
   };
   // next using the properties define the class
   DynaClass movieClass = new BasicDynaClass("movie", null, properties);
   // now, with the class, create a new instance
   DynaBean movieBean = movieClass.newInstance();
   // set its properties
   movieBean.set("title", "The Italian Job");
   movieBean.set("dateOfRelease",
     new GregorianCalendar(1969, 0, 1).getTime());
   movieBean.set("keywords", new String[] {"Italy", "Bank Robbery"});
   Map genre = new HashMap();
   genre.put("THR", "Thriller");
   movieBean.set("genre", genre);
   movieBean.set("genre", "ACT", "Action");
   DynaBean director = createPersonBean();
   director.set("name", "Peter Collinson");
   director.set("gender", new Integer(1));
   movieBean.set("director", director);
   return movieBean;
 }
 private static DynaBean createPersonBean() {
   DynaBean person = new LazyDynaBean();
   return person;
 }

}

      </source>
   
  
 
  



Get Mapped Property

   <source lang="java">

import java.util.Map; import java.util.HashMap; import java.util.Iterator; import java.lang.reflect.Method; import org.apache.rumons.collections.Bag; import org.apache.rumons.collections.bag.HashBag; import org.apache.rumons.beanutils.BeanUtils; import org.apache.rumons.beanutils.PropertyUtils; import org.apache.rumons.lang.StringUtils; public class TasteOfThingsV1 {

 private static Map testMap;
 private static TestBean testBean;
 public static void main(String args[]) throws Exception {
   prepareData();
   HashBag myBag = new HashBag(testMap.values());
   System.err.println("How many Boxes? " + myBag.getCount("Boxes"));
   myBag.add("Boxes", 5);
   System.err.println("How many Boxes now? " + myBag.getCount("Boxes"));
   Method method =
     testBean.getClass().getDeclaredMethod("getTestMap", new Class[0]);
   HashMap reflectionMap =
     (HashMap)method.invoke(testBean, new Object[0]);
   System.err.println("The value of the "squ" key using reflection: " +
     reflectionMap.get("squ"));
   String squ = BeanUtils.getMappedProperty(testBean, "testMap", "squ");
   squ = StringUtils.capitalize(squ);
   PropertyUtils.setMappedProperty(testBean, "testMap", "squ", squ);
   System.err.println("The value of the "squ" key is: " +
     BeanUtils.getMappedProperty(testBean, "testMap", "squ"));
   String box = (String)testMap.get("box");
   String caps =
     Character.toTitleCase(box.charAt(0)) +
     box.substring(1, box.length());
   System.err.println("Capitalizing boxes by Java: " + caps);
 }
 private static void prepareData() {
   testMap = new HashMap();
   testMap.put("box", "boxes");
   testMap.put("squ", "squares");
   testMap.put("rect", "rectangles");
   testMap.put("cir", "circles");
   testBean = new TestBean();
   testBean.setTestMap(testMap);
 }

}


import java.util.Map; import java.util.HashMap; public class TestBean {

 private Map testMap;
 public Map getTestMap() {
   return this.testMap;
 }
 public void setTestMap(Map testMap) {
   this.testMap = testMap;
 }

}

      </source>
   
  
 
  



Use Bean Utils to get property value from object

   <source lang="java">

import org.apache.rumons.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 BeanUtilsExampleV1 {

 public static void main(String args[]) throws Exception {
   BeanUtilsExampleV1 diff = new BeanUtilsExampleV1();
   Movie movieBean = diff.prepareData();
   System.err.println("Movie Title: " +
     BeanUtils.getProperty(movieBean, "title"));
   System.err.println("Movie Year: " +
     BeanUtils.getProperty(movieBean, "dateOfRelease"));
   System.err.println("Movie Director: " +
     BeanUtils.getProperty(movieBean, "director.name"));
   System.err.println("Movie Director Home Contact: " +
     BeanUtils.getProperty(movieBean, "director.contactNumber(Home)"));
   System.err.println("Movie Genre (Thriller): " +
     BeanUtils.getProperty(movieBean, "genre(THR)"));
   System.err.println("Movie Actor 1 name: " +
     BeanUtils.getProperty(movieBean, "actors[0].name"));
   System.err.println("Movie Actor 1 worth: " +
     BeanUtils.getProperty(movieBean, "actors[0].worth"));
   System.err.println("Movie Actor 1 other movie 1: " +
     BeanUtils.getProperty(movieBean, "actors[0].movieCredits[0].title"));
 }
 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.rumons.lang.builder.EqualsBuilder; import org.apache.rumons.lang.builder.HashCodeBuilder; import org.apache.rumons.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;

}

      </source>