-package mircoders.entity.adapter;
-
-import mir.entity.*;
-import mir.entity.adapter.*;
-import mircoders.storage.*;
-
-public class CommentAdapterDefinition extends EntityAdapterDefinition {
- private static CommentAdapterDefinition instance;
-
- public static CommentAdapterDefinition getInstance() {
- synchronized (CommentAdapterDefinition.class) {
- if (instance == null) {
- instance = new CommentAdapterDefinition();
- }
- return instance;
- }
- }
-
- public CommentAdapterDefinition() {
- super();
-
- addDBDateField("creationdate", "webdb_create");
- addCalculatedField("to_content", new CommentToContentField());
- }
-
- public EntityAdapter makeEntityAdapter(Entity anEntity) {
- return new EntityAdapter(anEntity, this);
- }
-
- private class CommentToContentField implements CalculatedField {
- public Object getValue(EntityAdapter anEntityAdapter) {
- try {
- return getRelation(
- DatabaseContent.getInstance(),
- "id="+anEntityAdapter.get("to_media"),
- "id",
- ContentAdapterDefinition.getInstance());
- }
- catch (Throwable t) {
- throw new RuntimeException(t.getMessage());
- }
- }
- }
-
-}
-
-
-// String mirconf_extLinkName = MirConfig.getProp("Producer.ExtLinkName");
-// String mirconf_intLinkName = MirConfig.getProp("Producer.IntLinkName");
-// String mirconf_mailLinkName = MirConfig.getProp("Producer.MailLinkName");
-// String mirconf_imageRoot = MirConfig.getProp("Producer.ImageRoot");
-
-
-// if (field.equals("date_formatted"))
-// {
-// if (hasValueForField("date"))
-// returnField = StringUtil.webdbDate2readableDate(getValue("date"));
-// }
-// else if (field.equals("description_parsed"))
-// returnField = getDescriptionParsed();
-// else if (field.equals("description_sentence"))
-// returnField = getDescriptionSentence();
-// else if (field.equals("content_data_parsed"))
-// returnField = getContentDataParsed();
-
-
-// if (key.equals("to_comments")) {
-// try {
-// _entCache.put(key, getComments());
-// return (TemplateModel)_entCache.get(key);
-// } catch (Exception ex) {
-// theLog.printWarning("-- getComments: could not fetch data " + ex.toString());
-// throw new TemplateModelException(ex.toString());
-// }
-// }
-// if (key.equals("to_media_images")) {
-// try {
-// _entCache.put(key, getImagesForContent());
-// return (TemplateModel)_entCache.get(key);
-// }
-// catch (Exception ex) {
-// theLog.printWarning("-- getImagesForContent: could not fetch data " + ex.toString());
-// throw new TemplateModelException(ex.toString());
-// }
-// }
-// if (key.equals("to_media_audio")) {
-// try {
-//// _entCache.put(key, getAudioForContent());
-// return (TemplateModel)_entCache.get(key);
-// }
-// catch (Exception ex) {
-// theLog.printWarning("-- getAudioForContent: could not fetch data " + ex.toString());
-// throw new TemplateModelException(ex.toString());
-// }
-// }
-// if (key.equals("to_media_video")) {
-// try {
-// _entCache.put(key, getVideoForContent());
-/* return (TemplateModel)_entCache.get(key);
- }
- catch (Exception ex) {
- theLog.printWarning("-- getVideoForContent: could not fetch data " + ex.toString());
- throw new TemplateModelException(ex.toString());
- }
- }
- if (key.equals("to_media_other")) {
- try {
- _entCache.put(key, getOtherMediaForContent());
- return (TemplateModel)_entCache.get(key);
- }
- catch (Exception ex) {
- theLog.printWarning("-- getOtherMediaForContent: could not fetch data " + ex.toString());
- throw new TemplateModelException(ex.toString());
- }
- }
- else if (key.equals("to_media_icon")) {
- try {
- _entCache.put(key, getUploadedMediaForNewswire());
- return (TemplateModel)_entCache.get(key);
- }
- catch (Exception ex) {
- theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString());
- throw new TemplateModelException(ex.toString());
- }
- }
- else if (key.equals("to_topics")) {
- try {
- _entCache.put(key,
- DatabaseContentToTopics.getInstance().getTopics(this));
- return (TemplateModel)_entCache.get(key);
- }
- catch (Exception ex) {
- theLog.printWarning("-- getTopics: could not fetch data " + ex.toString());
- throw new TemplateModelException(ex.toString());
- }
- }
-*/
-
-
-
-
-/*
- private String getContentDataParsed() {
- String returnField = getValue("content_data");
- if (returnField!=null & returnField.length()>0 ) {
- returnField=StringUtil.deleteForbiddenTags(returnField);
- //create http-links and email-links
- if (getValue("is_html").equals("0")) {
- returnField = StringUtil.createHTML(returnField,mirconf_imageRoot,
- mirconf_mailLinkName,mirconf_extLinkName,
- mirconf_intLinkName);
- }
- returnField = StringUtil.decodeHTMLinTags(returnField);
- }
- return returnField;
- }
-
- private String getDescriptionSentence() {
- String returnField = getValue("description");
- if (returnField != null && returnField.length()>0) {
- returnField = StringUtil.removeHTMLTags(returnField);
- int endOfFirstSentence=StringUtil.findEndOfSentence(returnField,0);
- if (endOfFirstSentence > 0){
- returnField = returnField.substring(0,endOfFirstSentence);
- }
- }
- return returnField;
- }
-
- private String getDescriptionParsed() {
- String returnField = getValue("description");
- if (returnField != null && returnField.length()>0) {
- returnField = StringUtil.deleteForbiddenTags(returnField);
- if (getValue("is_html").equals("0")) {
- returnField = StringUtil.createHTML(returnField,mirconf_imageRoot,
- mirconf_mailLinkName,mirconf_extLinkName,
- mirconf_intLinkName);
- }
- returnField = StringUtil.decodeHTMLinTags(returnField);
- }
- return returnField;
- }
-
-
- private EntityList getComments() throws StorageObjectException {
- return ((DatabaseContent)theStorageObject).getComments(this);
- }
-
- // @todo this needs to optimized. expensive SQL
- private SimpleHash getUploadedMediaForNewswire()
- throws StorageObjectException, TemplateModelException
- {
- // fetching/setting the images
- // return to_media_icons
- String tinyIcon = null, iconAlt = null;
- MirMedia mediaHandler = null;
- EntityUploadedMedia uploadedMedia;
- Entity mediaType;
- SimpleHash returnHash = new SimpleHash();
-
- EntityList upMediaEntityList =
- DatabaseContentToMedia.getInstance().getUploadedMedia(this);
- if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) {
-
- for (int n=0; n < upMediaEntityList.size();n++) {
- uploadedMedia = (EntityUploadedMedia)upMediaEntityList.elementAt(n);
- mediaType = uploadedMedia.getMediaType();
- try {
- mediaHandler = MediaHelper.getHandler( mediaType );
- } catch (MirMediaException ex) {
- throw new TemplateModelException(ex.toString());
- }
- //the "best" media type to show
- if (mediaHandler.isVideo()) {
- tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
- iconAlt = "Video";
- break;
- } else if (mediaHandler.isAudio()) {
- tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio");
- iconAlt = "Audio";
- } else if (tinyIcon == null && !mediaHandler.isImage()) {
- tinyIcon = mediaHandler.getTinyIcon();
- iconAlt = mediaHandler.getIconAlt();
- }
-
- }
- //it only has image(s)
- if (tinyIcon == null) {
- tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage");
- iconAlt = "Image";
- }
- // uploadedMedia Entity list is empty.
- // we only have text
- } else {
- tinyIcon = MirConfig.getProp("Producer.Icon.TinyText");
- iconAlt = "Text";
- }
- returnHash.put("tiny_icon", mirconf_imageRoot+"/"+tinyIcon);
- returnHash.put("icon_alt", iconAlt);
- return returnHash;
- }
-
- private boolean hasMedia() throws StorageObjectException
- {
- if (_hasMedia == null) {
- _hasMedia =
- new Boolean(DatabaseContentToMedia.getInstance().hasMedia(this));
- }
- return _hasMedia.booleanValue();
- }
-
- //######## @todo all of the following getBlahForContent should have
- // and optimized version where LIMIT=1 sql for list view.
- private EntityList getImagesForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getImages(this);
- else
- return null;
- }
-
- private EntityList getAudioForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getAudio(this) ;
- else
- return null;
- }
-
- private EntityList getVideoForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getVideo(this) ;
- else
- return null;
- }
-
- private EntityList getOtherMediaForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getOther(this);
- else
- return null;
- }
-
-}
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// if (field.equals("date_formatted"))
-// {
-// if (hasValueForField("webdb_create"))
-// returnField = StringUtil.dateToReadableDate(getValue("webdb_create"));
-
-
-// else if (field.equals("description_parsed")) {
-// /** @todo the config stuff should be moved to StringUtil */
-// String extLinkName = MirConfig.getProp("Producer.ExtLinkName");
-// String intLinkName = MirConfig.getProp("Producer.IntLinkName");
-// String mailLinkName = MirConfig.getProp("Producer.MailLinkName");
-// String imageRoot = MirConfig.getProp("Producer.ImageRoot");
-// returnField = StringUtil.createHTML(getValue("description"),imageRoot,mailLinkName,extLinkName,intLinkName);