Beans
uPortal 3 has mange objects which follow the JavaBeans standards (private fields, like named getters & setters). These objects should all have the following 3 methods overridden: toString, hashCode, equals. The Jakarta Commons Lang library provides a utility for doing so in a standard way. All developers are encouraged to use the Commons Lang utilities for these tasks so all of the uPortal 3 objects have a standard behavior.
Bean.java
import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import java.util.Date; public class Bean { private Sring name; private Date birthday; private int age; public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setBirthday(Date birthday) { this.birthday= birthday; } public Date getBirthday() { return this.birthday; } public void setAge(int age) { this.age= age; } public int getAge() { return this.age; } }
String toString()
Using Commons Lang to implement toString for the above Bean class
Bean.java
public String toString() { return new ToStringBuilder(this) .append("name", this.name) .append("birthday", this.birthday) .append("age", this.age) .toString(); } }
int hashCode()
Using Commons Lang to implement hashCode for the above Bean class
Bean.java
public int hashCode() { //Binary or on each to ensure we get an odd number final int classCode = this.getClass().hashCode() | 1; final int classNameCode = this.getClass().getName().hashCode() | 1; return new HashCodeBuilder(classCode, classNameCode) .append(this.name) .append(this.birthday) .append(this.age) .toHashCode(); } }
boolean equals(Object)
Using Commons Lang to implement equals for the above Bean class
Bean.java
public boolean equals(Object obj) { if (!(obj instanceof Bean)) { return false; } if (this == obj) { return true; } Bean other = (Bean)obj; return new EqualsBuilder() .append(this.name, other.name) .append(this.birthday, other.birthday) .append(this.age, other.age) .isEquals(); } }