397cb1c770745e0d5b35784610cf0685b06c2d7c
[mir.git] / source / mir / core / model / Content.java
1 /*
2  * Content.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.ArrayList;
36 import java.util.GregorianCalendar;
37 import java.util.List;
38 import java.util.Set;
39
40 import org.apache.commons.lang.builder.ToStringBuilder;
41
42 /**
43  * 
44  * Content
45  * @author idefix
46  * @version $Id: Content.java,v 1.5 2003/12/20 20:27:09 idfx Exp $
47  */
48 public class Content extends Media implements Serializable, IContent {
49
50         /** persistent field */
51         private boolean isHtml;
52
53         /** nullable persistent field */
54         private String contentData;
55
56         /** persistent field */
57         private ArticleType articleType;
58
59         /** nullable persistent field */
60         private Content parentContent;
61
62         /** persistent field */
63         private Set childContent;
64
65         /** persistent field */
66         private Set topics;
67
68         /** persistent field */
69         private Set attachedMedias;
70         
71         private Set comments;
72
73         /** default constructor */
74         public Content() {
75         }
76
77         public boolean isHtml() {
78                 return this.isHtml;
79         }
80
81         public boolean getHtml() {
82                 return isHtml();
83         }
84
85         public void setHtml(boolean isHtml) {
86                 this.isHtml = isHtml;
87         }
88
89         public java.lang.String getContentData() {
90                 return this.contentData;
91         }
92
93         public void setContentData(java.lang.String contentData) {
94                 this.contentData = contentData;
95         }
96
97         public ArticleType getArticleType() {
98                 return this.articleType;
99         }
100
101         public void setArticleType(ArticleType articleType) {
102                 this.articleType = articleType;
103         }
104
105         public mir.core.model.Content getParentContent() {
106                 return this.parentContent;
107         }
108
109         public void setParentContent(mir.core.model.Content parentContent) {
110                 this.parentContent = parentContent;
111         }
112
113         public Set getChildContent() {
114                 return this.childContent;
115         }
116
117         public void setChildContent(Set childContent) {
118                 this.childContent = childContent;
119         }
120
121         public Set getTopics() {
122                 return this.topics;
123         }
124
125         public void setTopics(Set topics) {
126                 this.topics = topics;
127         }
128
129         public Set getAttachedMedias() {
130                 return this.attachedMedias;
131         }
132
133         public void setAttachedMedias(Set attachedMedias) {
134                 this.attachedMedias = attachedMedias;
135         }
136         
137         /**
138          * @return
139          */
140         public Set getComments() {
141                 return comments;
142         }
143
144         /**
145          * @param set
146          */
147         public void setComments(Set set) {
148                 comments = set;
149         }
150         
151         public List getOperations(){
152                 return new ArrayList();
153         }
154         
155         public List getTopicsAsList(){
156                 return new ArrayList(getTopics());
157         }
158         
159         public String getPublicurl(){
160                 GregorianCalendar calendar = new GregorianCalendar();
161                 calendar.setTime(getWebdbCreate());
162                 calendar.get(GregorianCalendar.YEAR);
163                 return "" + calendar.get(GregorianCalendar.YEAR) + "/"
164                         + calendar.get(GregorianCalendar.MONTH) + "/"
165                         + this.getId() + ".shtml";
166         }
167         
168         public int getCommentsSize(){
169                 return comments.size();
170         }
171         
172         public String toString() {
173                 return new ToStringBuilder(this).append("id", getId()).toString();
174         }
175 }