--- /dev/null
+/*
+ * $Id: Media.java,v 1.1 2004/11/06 16:20:48 idfx Exp $
+ *
+ * Copyright (C) 2001, 2002, 2003, 2004 The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Mir is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two. You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries. If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
+ * If you do not wish to do so, delete this exception statement from your version.
+ */
+package org.codecoop.mir.core.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+
+/**
+ * Media
+ *
+ * @author idefix
+ */
+public class Media implements Serializable {
+
+ /** identifier field */
+ private Integer id;
+
+ /** nullable persistent field */
+ private String title;
+
+ /** nullable persistent field */
+ private String description;
+
+ /** nullable persistent field */
+ private String creator;
+
+ /** nullable persistent field */
+ private String creatorMainUrl;
+
+ /** nullable persistent field */
+ private String creatorEmail;
+
+ /** nullable persistent field */
+ private String creatorAddress;
+
+ /** nullable persistent field */
+ private String creatorPhone;
+
+ /** nullable persistent field */
+ private String internalComment;
+
+ /** persistent field */
+ private boolean produced;
+
+ /** persistent field */
+ private Date creationDate;
+
+ /** nullable persistent field */
+ private Date lastChange;
+
+ /** nullable persistent field */
+ private User publisher;
+
+ private Map relatedMedias;
+
+ /** holds hashCode for hashCode() */
+ private transient int hashCode = Integer.MIN_VALUE;
+
+ /** default constructor */
+ public Media() {
+ creationDate = new Date();
+ }
+
+ public Integer getId() {
+ return this.id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return this.title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getCreator() {
+ return this.creator;
+ }
+
+ public void setCreator(String creator) {
+ this.creator = creator;
+ }
+
+ public String getCreatorMainUrl() {
+ return this.creatorMainUrl;
+ }
+
+ public void setCreatorMainUrl(String creatorMainUrl) {
+ this.creatorMainUrl = creatorMainUrl;
+ }
+
+ public String getCreatorEmail() {
+ return this.creatorEmail;
+ }
+
+ public void setCreatorEmail(String creatorEmail) {
+ this.creatorEmail = creatorEmail;
+ }
+
+ public String getCreatorAddress() {
+ return this.creatorAddress;
+ }
+
+ public void setCreatorAddress(String creatorAddress) {
+ this.creatorAddress = creatorAddress;
+ }
+
+ public String getCreatorPhone() {
+ return this.creatorPhone;
+ }
+
+ public void setCreatorPhone(String creatorPhone) {
+ this.creatorPhone = creatorPhone;
+ }
+
+ public String getInternalComment() {
+ return this.internalComment;
+ }
+
+ public void setInternalComment(String internalComment) {
+ this.internalComment = internalComment;
+ }
+
+ public boolean isProduced() {
+ return this.produced;
+ }
+
+ public void setProduced(boolean produced) {
+ this.produced = produced;
+ }
+
+ public Date getCreationDate() {
+ return this.creationDate;
+ }
+
+ public void setCreationDate(Date creationDate) {
+ this.creationDate = creationDate;
+ }
+
+ public Date getLastChange() {
+ return this.lastChange;
+ }
+
+ public void setLastChange(Date lastChange) {
+ this.lastChange = lastChange;
+ }
+
+ public User getPublisher() {
+ return this.publisher;
+ }
+
+ public void setPublisher(User publisher) {
+ this.publisher = publisher;
+ }
+
+ /**
+ * @return Returns the relatedMedias.
+ */
+ public Map getRelatedMedias() {
+ return relatedMedias;
+ }
+
+ /**
+ * @param relatedMedias The relatedMedias to set.
+ */
+ public void setRelatedMedias(Map relatedMedias) {
+ this.relatedMedias = relatedMedias;
+ }
+
+ /**
+ * @param mediaRelation
+ */
+ public void addRelatedMedia(Media target, MediaRelationType relationType) {
+ if(relatedMedias == null){
+ relatedMedias = new HashMap();
+ }
+ relatedMedias.put(target, relationType);
+ }
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE)
+ .append("id", this.getId()).toString();
+ }
+
+ public boolean equals(Object obj) {
+ if (null == obj) {
+ return false;
+ }
+ if (!(obj instanceof Media)) {
+ return false;
+ } else {
+ Media mObj = (Media) obj;
+ if (null == this.getId() || null == mObj.getId()) {
+ return false;
+ } else {
+ return (this.getId().equals(mObj.getId()));
+ }
+ }
+ }
+
+ public int hashCode() {
+ if (Integer.MIN_VALUE == this.hashCode) {
+ if (null == this.getId())
+ return super.hashCode();
+ else {
+ String hashStr = this.getClass().getName() + ":"
+ + this.getId().hashCode();
+ this.hashCode = hashStr.hashCode();
+ }
+ }
+ return this.hashCode;
+ }
+}
\ No newline at end of file