indy.nl updates
[mir.git] / source / mirlocal / indymedia.nl / IndyNLDataModelLocalizer.java
1 package mirlocal.indymedia.nl;
2
3 import mir.entity.adapter.*;
4 import mircoders.localizer.*;
5 import mircoders.localizer.basic.*;
6 import mircoders.storage.*;
7
8 public class IndyNLDataModelLocalizer extends MirBasicDataModelLocalizer {
9   protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure {
10     super.constructContentAdapterDefinition( anEntityAdapterDefinition );
11
12     try {
13       anEntityAdapterDefinition.addCalculatedField("to_trashedcomments", new ContentToTrashedCommentsField());
14       anEntityAdapterDefinition.addCalculatedField("trashedcommentcount", new ContentTrashedCommentCountField());
15       anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField());
16     }
17     catch (Throwable t) {
18       throw new MirLocalizerFailure(t.getMessage(), t);
19     }
20   }
21
22
23   protected class ContentToTrashedCommentsField implements EntityAdapterDefinition.CalculatedField {
24     public Object getValue(EntityAdapter anEntityAdapter) {
25       try {
26         return anEntityAdapter.getRelation(
27                     "to_media="+anEntityAdapter.get("id")+" and is_published='0'",
28                     "webdb_create",
29                     "comment" );
30       }
31       catch (Throwable t) {
32         throw new RuntimeException(t.getMessage());
33       }
34     }
35   }
36
37   protected class ContentCommentCountField implements EntityAdapterDefinition.CalculatedField {
38     public Object getValue(EntityAdapter anEntityAdapter) {
39       try {
40         return Integer.toString(
41             DatabaseComment.getInstance().getSize(
42                   "to_media="+anEntityAdapter.get("id")+" and is_published='1'"));
43       }
44       catch (Throwable t) {
45         throw new RuntimeException(t.getMessage());
46       }
47     }
48   }
49
50   protected class ContentTrashedCommentCountField implements EntityAdapterDefinition.CalculatedField {
51     public Object getValue(EntityAdapter anEntityAdapter) {
52       try {
53         return Integer.toString(
54             DatabaseComment.getInstance().getSize(
55                   "to_media="+anEntityAdapter.get("id")+" and is_published='0'"));
56       }
57       catch (Throwable t) {
58         throw new RuntimeException(t.getMessage());
59       }
60     }
61   }
62 }