restoring head
[mir.git] / source / org / codecoop / mir / core / model / Media.java
diff --git a/source/org/codecoop/mir/core/model/Media.java b/source/org/codecoop/mir/core/model/Media.java
new file mode 100755 (executable)
index 0000000..56afd91
--- /dev/null
@@ -0,0 +1,262 @@
+/*
+ * $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