1 package mircoders.entity;
3 import freemarker.template.SimpleList;
4 import freemarker.template.SimpleScalar;
5 import freemarker.template.TemplateModel;
6 import freemarker.template.TemplateModelException;
7 import mir.entity.Entity;
8 import mir.media.MediaHelper;
9 import mir.media.MirMedia;
10 import mir.storage.StorageObject;
11 import mir.storage.StorageObjectException;
12 import mircoders.storage.DatabaseUploadedMedia;
14 import java.util.HashMap;
17 * Diese Klasse enthält die Daten eines MetaObjekts
24 public class EntityUploadedMedia extends Entity {
27 public EntityUploadedMedia() {
31 public EntityUploadedMedia(StorageObject theStorage) {
33 setStorage(theStorage);
36 public void setValues(HashMap theStringValues) {
37 if (theStringValues != null) {
38 if (!theStringValues.containsKey("is_published"))
39 theStringValues.put("is_published", "0");
41 super.setValues(theStringValues);
46 * fetches the MediaType entry assiciated w/ this media
48 * @return mir.entity.Entity
50 public Entity getMediaType() throws StorageObjectException {
53 ent = DatabaseUploadedMedia.getInstance().getMediaType(this);
55 catch (StorageObjectException e) {
56 throwStorageObjectException(e, "get MediaType failed -- ");
61 public String getValue(String key) {
62 String returnValue = null;
65 if (key.equals("big_icon"))
66 returnValue = getBigIcon();
67 else if (key.equals("descr"))
68 returnValue = getDescr();
69 else if (key.equals("mediatype"))
70 returnValue = getMediaTypeString();
71 else if (key.equals("mimetype"))
72 returnValue = getMimeType();
74 returnValue = super.getValue(key);
79 public TemplateModel get(java.lang.String key) throws TemplateModelException {
80 if (key.equals("url"))
82 return new SimpleScalar(getValue(key));
85 // @todo all these methods should be merged into 1
86 // and the MediaHandler should be cached somehow.
87 private String getMediaTypeString() {
88 MirMedia mediaHandler = null;
89 Entity mediaType = null;
92 mediaType = getMediaType();
93 mediaHandler = MediaHelper.getHandler(mediaType);
95 if (mediaHandler.isAudio())
97 else if (mediaHandler.isImage())
99 else if (mediaHandler.isVideo())
104 catch (Exception ex) {
105 theLog.printWarning("-- getMediaTypeString: could not fetch data "
106 + this.getClass().toString() + " " + ex.toString());
111 private String getBigIcon() {
112 MirMedia mediaHandler = null;
113 Entity mediaType = null;
116 mediaType = getMediaType();
117 mediaHandler = MediaHelper.getHandler(mediaType);
118 return mediaHandler.getBigIcon();
120 catch (Exception ex) {
121 theLog.printWarning("-- getBigIcon: could not fetch data "
122 + this.getClass().toString() + " " + ex.toString());
127 private SimpleList getUrl() {
128 MirMedia mediaHandler = null;
129 Entity mediaType = null;
132 mediaType = getMediaType();
133 mediaHandler = MediaHelper.getHandler(mediaType);
134 return mediaHandler.getURL(this, mediaType);
136 catch (Exception ex) {
137 theLog.printWarning("-- getUrl: could not fetch data "
138 + this.getClass().toString() + " " + ex.toString());
143 private String getDescr() {
144 MirMedia mediaHandler = null;
145 Entity mediaType = null;
148 mediaType = getMediaType();
149 mediaHandler = MediaHelper.getHandler(mediaType);
150 return mediaHandler.getDescr();
152 catch (Exception ex) {
153 theLog.printWarning("-- getDescr: could not fetch data "
154 + this.getClass().toString() + " " + ex.toString());
158 private String getMimeType() {
159 Entity mediaType = null;
162 mediaType = getMediaType();
163 return mediaType.getValue("mime_type");
165 catch (Exception ex) {
166 theLog.printWarning("-- getBigIcon: could not fetch data "
167 + this.getClass().toString() + " " + ex.toString());