2 * $Id: Media.java,v 1.1 2004/11/06 16:20:48 idfx Exp $
4 * Copyright (C) 2001, 2002, 2003, 2004 The Mir-coders group
6 * This file is part of Mir.
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.
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.
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
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.
32 package org.codecoop.mir.core.model;
34 import java.io.Serializable;
35 import java.util.Date;
36 import java.util.HashMap;
39 import org.apache.commons.lang.builder.ToStringBuilder;
40 import org.apache.commons.lang.builder.ToStringStyle;
47 public class Media implements Serializable {
49 /** identifier field */
52 /** nullable persistent field */
55 /** nullable persistent field */
56 private String description;
58 /** nullable persistent field */
59 private String creator;
61 /** nullable persistent field */
62 private String creatorMainUrl;
64 /** nullable persistent field */
65 private String creatorEmail;
67 /** nullable persistent field */
68 private String creatorAddress;
70 /** nullable persistent field */
71 private String creatorPhone;
73 /** nullable persistent field */
74 private String internalComment;
76 /** persistent field */
77 private boolean produced;
79 /** persistent field */
80 private Date creationDate;
82 /** nullable persistent field */
83 private Date lastChange;
85 /** nullable persistent field */
86 private User publisher;
88 private Map relatedMedias;
90 /** holds hashCode for hashCode() */
91 private transient int hashCode = Integer.MIN_VALUE;
93 /** default constructor */
95 creationDate = new Date();
98 public Integer getId() {
102 public void setId(Integer id) {
106 public String getTitle() {
110 public void setTitle(String title) {
114 public String getDescription() {
115 return this.description;
118 public void setDescription(String description) {
119 this.description = description;
122 public String getCreator() {
126 public void setCreator(String creator) {
127 this.creator = creator;
130 public String getCreatorMainUrl() {
131 return this.creatorMainUrl;
134 public void setCreatorMainUrl(String creatorMainUrl) {
135 this.creatorMainUrl = creatorMainUrl;
138 public String getCreatorEmail() {
139 return this.creatorEmail;
142 public void setCreatorEmail(String creatorEmail) {
143 this.creatorEmail = creatorEmail;
146 public String getCreatorAddress() {
147 return this.creatorAddress;
150 public void setCreatorAddress(String creatorAddress) {
151 this.creatorAddress = creatorAddress;
154 public String getCreatorPhone() {
155 return this.creatorPhone;
158 public void setCreatorPhone(String creatorPhone) {
159 this.creatorPhone = creatorPhone;
162 public String getInternalComment() {
163 return this.internalComment;
166 public void setInternalComment(String internalComment) {
167 this.internalComment = internalComment;
170 public boolean isProduced() {
171 return this.produced;
174 public void setProduced(boolean produced) {
175 this.produced = produced;
178 public Date getCreationDate() {
179 return this.creationDate;
182 public void setCreationDate(Date creationDate) {
183 this.creationDate = creationDate;
186 public Date getLastChange() {
187 return this.lastChange;
190 public void setLastChange(Date lastChange) {
191 this.lastChange = lastChange;
194 public User getPublisher() {
195 return this.publisher;
198 public void setPublisher(User publisher) {
199 this.publisher = publisher;
203 * @return Returns the relatedMedias.
205 public Map getRelatedMedias() {
206 return relatedMedias;
210 * @param relatedMedias The relatedMedias to set.
212 public void setRelatedMedias(Map relatedMedias) {
213 this.relatedMedias = relatedMedias;
217 * @param mediaRelation
219 public void addRelatedMedia(Media target, MediaRelationType relationType) {
220 if(relatedMedias == null){
221 relatedMedias = new HashMap();
223 relatedMedias.put(target, relationType);
227 * @see java.lang.Object#toString()
229 public String toString() {
230 return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE)
231 .append("id", this.getId()).toString();
234 public boolean equals(Object obj) {
238 if (!(obj instanceof Media)) {
241 Media mObj = (Media) obj;
242 if (null == this.getId() || null == mObj.getId()) {
245 return (this.getId().equals(mObj.getId()));
250 public int hashCode() {
251 if (Integer.MIN_VALUE == this.hashCode) {
252 if (null == this.getId())
253 return super.hashCode();
255 String hashStr = this.getClass().getName() + ":"
256 + this.getId().hashCode();
257 this.hashCode = hashStr.hashCode();
260 return this.hashCode;