some changes in the model classes and its xml-descriptions
[mir.git] / source / mir / core / model / Topic.java
1 /*
2  * Topic.java
3  * 
4  * Copyright (C) 2001, 2002, 2003 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 mir.core.model;
33
34 import java.io.Serializable;
35 import java.util.Set;
36
37 import org.apache.commons.lang.builder.EqualsBuilder;
38 import org.apache.commons.lang.builder.HashCodeBuilder;
39 import org.apache.commons.lang.builder.ToStringBuilder;
40
41 /**
42  * 
43  * Topic
44  * @author idefix
45  * @version $Id: Topic.java,v 1.2 2003/08/17 19:13:19 idfx Exp $
46  */
47 public class Topic implements Serializable {
48
49     /** identifier field */
50     private Integer id;
51
52     /** persistent field */
53     private String title;
54
55     /** nullable persistent field */
56     private String description;
57
58     /** persistent field */
59     private String filename;
60
61     /** nullable persistent field */
62     private String mainUrl;
63
64     /** nullable persistent field */
65     private String archivUrl;
66
67     /** nullable persistent field */
68     private mir.core.model.Topic parentTopic;
69     
70     private Set content;
71
72     /** default constructor */
73     public Topic() {
74     }
75
76     public java.lang.Integer getId() {
77         return this.id;
78     }
79
80     public void setId(java.lang.Integer id) {
81         this.id = id;
82     }
83
84     public java.lang.String getTitle() {
85         return this.title;
86     }
87
88     public void setTitle(java.lang.String title) {
89         this.title = title;
90     }
91
92     public java.lang.String getDescription() {
93         return this.description;
94     }
95
96     public void setDescription(java.lang.String description) {
97         this.description = description;
98     }
99
100     public java.lang.String getFilename() {
101         return this.filename;
102     }
103
104     public void setFilename(java.lang.String filename) {
105         this.filename = filename;
106     }
107
108     public java.lang.String getMainUrl() {
109         return this.mainUrl;
110     }
111
112     public void setMainUrl(java.lang.String mainUrl) {
113         this.mainUrl = mainUrl;
114     }
115
116     public java.lang.String getArchivUrl() {
117         return this.archivUrl;
118     }
119
120     public void setArchivUrl(java.lang.String archivUrl) {
121         this.archivUrl = archivUrl;
122     }
123
124     public mir.core.model.Topic getParentTopic() {
125         return this.parentTopic;
126     }
127
128     public void setParentTopic(mir.core.model.Topic parentTopic) {
129         this.parentTopic = parentTopic;
130     }
131
132                 /**
133                  * @return
134                  */
135                 public Set getContent() {
136                         return content;
137                 }
138
139                 /**
140                  * @param content
141                  */
142                 public void setContent(Set content) {
143                         this.content = content;
144                 }
145
146     public String toString() {
147         return new ToStringBuilder(this)
148             .append("id", getId())
149             .toString();
150     }
151
152     public boolean equals(Object other) {
153         if ( !(other instanceof Topic) ) return false;
154         Topic castOther = (Topic) other;
155         return new EqualsBuilder()
156             .append(this.getId(), castOther.getId())
157             .isEquals();
158     }
159
160     public int hashCode() {
161         return new HashCodeBuilder()
162             .append(getId())
163             .toHashCode();
164     }
165
166 }