140c2ac1953a9ee0684dd9523d06640f41b5edc3
[mir.git] / source / org / codecoop / mir / core / model / Message.java
1 /*
2  * $Id: Message.java,v 1.1 2004/11/06 16:20:48 idfx Exp $
3  *
4  * Copyright (C) 2001, 2002, 2003, 2004 The Mir-coders group
5  *
6  * This file is part of Mir.
7  *
8  * Mir is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * Mir is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with Mir; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  *
22  * In addition, as a special exception, The Mir-coders gives permission to link
23  * the code of this program with  any library licensed under the Apache Software License,
24  * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
25  * (or with modified versions of the above that use the same license as the above),
26  * and distribute linked combinations including the two.  You must obey the
27  * GNU General Public License in all respects for all of the code used other than
28  * the above mentioned libraries.  If you modify this file, you may extend this
29  * exception to your version of the file, but you are not obligated to do so.
30  * If you do not wish to do so, delete this exception statement from your version.
31  */
32 package org.codecoop.mir.core.model;
33
34 import java.io.Serializable;
35 import java.util.Date;
36
37 import org.apache.commons.lang.builder.ToStringBuilder;
38
39 /**
40  * Message
41  * 
42  * @author idefix
43  */
44 public class Message implements Serializable {
45
46   /** identifier field */
47   private Integer id;
48
49   /** nullable persistent field */
50   private String title;
51
52   /** persistent field */
53   private String description;
54
55   /** persistent field */
56   private String creator;
57
58   /** persistent field */
59   private Date creationDate;
60
61   private int hashCode;
62
63   /** default constructor */
64   public Message() {
65   }
66
67   public Integer getId() {
68     return this.id;
69   }
70
71   public void setId(Integer id) {
72     this.id = id;
73   }
74
75   public String getTitle() {
76     return this.title;
77   }
78
79   public void setTitle(String title) {
80     this.title = title;
81   }
82
83   public String getDescription() {
84     return this.description;
85   }
86
87   public void setDescription(String description) {
88     this.description = description;
89   }
90
91   public String getCreator() {
92     return this.creator;
93   }
94
95   public void setCreator(String creator) {
96     this.creator = creator;
97   }
98
99   public Date getCreationDate() {
100     return this.creationDate;
101   }
102
103   public void setCreationDate(Date creationDate) {
104     this.creationDate = creationDate;
105   }
106   
107   public boolean equals(Object obj) {
108     if (null == obj) {
109       return false;
110     }
111     if (!(obj instanceof Message)) {
112       return false;
113     } else {
114       Message mObj = (Message) obj;
115       if (null == this.getId() || null == mObj.getId()) {
116         return false;
117       } else {
118         return (this.getId().equals(mObj.getId()));
119       }
120     }
121   }
122
123   public int hashCode() {
124     if (Integer.MIN_VALUE == this.hashCode) {
125       if (null == this.getId()){
126         return super.hashCode();
127       } else {
128         String hashStr = this.getClass().getName() + ":"
129             + this.getId().hashCode();
130         this.hashCode = hashStr.hashCode();
131       }
132     }
133     return this.hashCode;
134   }
135   
136   public String toString() {
137     return new ToStringBuilder(this).append("id", getId()).toString();
138   }
139
140 }