1 package org.infoglue.cms.entities.kernel; 2 3 import java.io.Serializable ; 4 5 import org.infoglue.cms.util.DomainUtils; 6 7 16 public abstract class Persistent implements BaseEntityVO, Comparable , Serializable 17 { 18 21 public boolean isUnsaved() 22 { 23 return getId() == null; 24 } 25 26 29 public boolean isSaved() 30 { 31 return getId() != null; 32 } 33 34 45 public int compareTo(Object o) 46 { 47 Persistent p = (Persistent)o; 48 return (isUnsaved() && p.isUnsaved()) 49 ? new Integer (hashCode()).compareTo(new Integer (p.hashCode())) 50 : DomainUtils.compare(getId(), p.getId()); 51 } 52 53 59 public boolean equals(Object o) 60 { 61 return super.equals(o) || (o != null && getClass().equals(o.getClass()) && compareTo(o) == 0); 62 } 63 64 68 public int hashCode() 69 { 70 return (isUnsaved()) ? super.hashCode() : DomainUtils.hashCode(getId()); 71 } 72 73 79 public String toString() 80 { 81 return toStringBuffer().toString(); 82 } 83 84 89 protected StringBuffer toStringBuffer() 90 { 91 StringBuffer buffer = new StringBuffer (getClass().getName()).append(' '); 92 buffer.append("id=").append(getId()); 93 return buffer; 94 } 95 96 106 public static void append(StringBuffer buffer, Persistent persistent) 107 { 108 buffer = (persistent == null) ? buffer.append(persistent) : buffer.append(persistent.getId()); 109 } 110 } 111 | Popular Tags |