producer performance upgrades in the form of entity caching, and preliminary
[mir.git] / source / mircoders / entity / adapter / ContentAdapterDefinition.java
index d2e390c..1d038a1 100755 (executable)
@@ -5,6 +5,7 @@ import mir.storage.*;
 import mir.entity.*;
 import mir.entity.adapter.*;
 import mir.media.*;
+import mir.util.*;
 import mircoders.storage.*;
 import mircoders.global.*;
 import mircoders.entity.*;
@@ -33,6 +34,8 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition {
     try {
       addCalculatedField("to_media_images", new ContentToMediaField(
           DatabaseImages.getInstance(), ImagesAdapterDefinition.getInstance()));
+      addCalculatedField("to_uploaded_media", new ContentToMediaField(
+          DatabaseUploadedMedia.getInstance(), UploadedMediaAdapterDefinition.getInstance()));
       addCalculatedField("to_media_audio", new ContentToMediaField(
           DatabaseAudio.getInstance(), AudioAdapterDefinition.getInstance()));
       addCalculatedField("to_media_video", new ContentToMediaField(
@@ -122,30 +125,33 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition {
 
   private class ContentToIconField implements CalculatedField {
     public Object getValue(EntityAdapter anEntityAdapter) {
-      EntityUploadedMedia uploadedMedia;
+//      EntityUploadedMedia uploadedMedia;
+      EntityAdapter media;
       Entity mediaType;
-      EntityBrowser browser;
+      RewindableIterator iterator;
       Map result;
       MirMedia mediaHandler;
       String tinyIcon;
       String iconAlt;
 
-
       try {
-        browser =
+        iterator = (RewindableIterator) anEntityAdapter.get("to_uploaded_media");
+        iterator.rewind();
+/*        browser =
             new EntityBrowser(
                 DatabaseUploadedMedia.getInstance(),
                 "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)",
                 "id",
                 1);
+*/
 
         tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText");
         iconAlt = "Text";
 
-        if (browser.hasNext()) {
-          uploadedMedia = (EntityUploadedMedia) browser.next();
+        if (iterator.hasNext()) {
+          media = (EntityAdapter) iterator.next();
 
-          mediaType = uploadedMedia.getMediaType();
+          mediaType = ((EntityMedia) media.getEntity()).getMediaType();
           mediaHandler = MediaHelper.getHandler( mediaType );
 
           if (mediaHandler.isVideo()) {