Package org.beangle.model.pojo

Source Code of org.beangle.model.pojo.StringIdObject

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.model.pojo;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.beangle.model.predicates.ValidEntityKeyPredicate;
import org.hibernate.annotations.GenericGenerator;

@MappedSuperclass
public class StringIdObject implements StringIdEntity {

  private static final long serialVersionUID = -6898498932182877104L;

  @Id
  @GeneratedValue(generator = "id_assigned")
  @GenericGenerator(name = "id_assigned", strategy = "assigned")
  protected String id;

  public StringIdObject() {
    super();
  }

  public StringIdObject(String id) {
    super();
    this.id = id;
  }

  public String getIdentifier() {
    return id;
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public boolean isPersisted() {
    return ValidEntityKeyPredicate.INSTANCE.evaluate(id);
  }

  public boolean isTransient() {
    return !ValidEntityKeyPredicate.INSTANCE.evaluate(id);
  }

  /**
   * @see java.lang.Object#hashCode()
   */
  public int hashCode() {
    return new HashCodeBuilder(-64900959, -454788261).append(this.id).toHashCode();
  }

  /**
   * 比较id,如果任一方id是null,则不相等
   *
   * @see java.lang.Object#equals(Object)
   */
  public boolean equals(final Object object) {
    if (!(object instanceof StringIdObject)) { return false; }
    StringIdObject rhs = (StringIdObject) object;
    if (null == getId() || null == rhs.getId()) { return false; }
    return new EqualsBuilder().append(this.getId(), rhs.getId()).isEquals();
  }

}
TOP

Related Classes of org.beangle.model.pojo.StringIdObject

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.