added the comment status count field
authorzapata <zapata>
Sat, 3 Dec 2005 16:26:12 +0000 (16:26 +0000)
committerzapata <zapata>
Sat, 3 Dec 2005 16:26:12 +0000 (16:26 +0000)
source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java

index 2479b25..500f62a 100755 (executable)
@@ -55,6 +55,7 @@ import mircoders.localizer.MirLocalizerFailure;
 import mircoders.media.MediaHelper;
 import mircoders.module.ModuleContent;
 import mircoders.module.ModuleLanguage;
+import mircoders.module.ModuleCommentStatus;
 import mircoders.storage.*;
 import multex.Failure;
 
@@ -84,7 +85,7 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
       anEntityAdapterDefinition.addCalculatedField("language", new ToOneRelationField("to_language", "language", "id"));
       anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField(" and is_published='1'"));
       anEntityAdapterDefinition.addCalculatedField("fullcommentcount", new ContentCommentCountField(""));
-
+      anEntityAdapterDefinition.addCalculatedField("commentstatuscount", new CommentStatusCountField());
 
       anEntityAdapterDefinition.addCalculatedField("mediacount", new ContentMediaCountField("uploaded_media", true));
       anEntityAdapterDefinition.addCalculatedField("fullmediacount", new ContentMediaCountField("uploaded_media", false));
@@ -862,5 +863,32 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
       }
     }
   }
+
+  protected static class CommentStatusCountField implements EntityAdapterDefinition.CalculatedField {
+    public Object getValue(EntityAdapter anEntityAdapter) {
+      return new CommentStatusCountField2(anEntityAdapter);
+    }
+  }
+
+  private static class CommentStatusCountField2 {
+    private final EntityAdapter comment;
+    private final ModuleCommentStatus mcs = new ModuleCommentStatus();
+
+    CommentStatusCountField2(EntityAdapter anEntityAdapter) {
+      comment = anEntityAdapter;
+    }
+
+    public String get(String aCommentStatus) {
+      try {
+        return Integer.toString(
+            DatabaseComment.getInstance().getSize(
+                  "to_media=" + comment.get("id") + " and is_published='1' and to_comment_status = " +
+                      mcs.commentStatusIdForName(aCommentStatus)));
+      }
+      catch (Exception e) {
+        return "0";
+      }
+    }
+  }
 }