9bb3e3c8a27aa5531ff298fa697cc8a0089ced9e
[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     try {
11       anEntityAdapterDefinition.addCalculatedField("to_hiddencomments", new ContentToHiddenCommentsField());
12       anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField());
13     }
14     catch (Throwable t) {
15       throw new MirLocalizerFailure(t.getMessage(), t);
16     }
17   }
18
19
20   protected class ContentToHiddenCommentsField implements EntityAdapterDefinition.CalculatedField {
21     public Object getValue(EntityAdapter anEntityAdapter) {
22       try {
23         return anEntityAdapter.getRelation(
24                     "to_media="+anEntityAdapter.get("id")+" and is_published='1'",
25                     "webdb_create",
26                     "comment" );
27       }
28       catch (Throwable t) {
29         throw new RuntimeException(t.getMessage());
30       }
31     }
32   }
33
34   protected class ContentCommentCountField implements EntityAdapterDefinition.CalculatedField {
35     public Object getValue(EntityAdapter anEntityAdapter) {
36       try {
37         return Integer.toString(
38             DatabaseComment.getInstance().getSize(
39                   "to_media="+anEntityAdapter.get("id")+" and is_published='1'"));
40       }
41       catch (Throwable t) {
42         throw new RuntimeException(t.getMessage());
43       }
44     }
45   }
46 }