throw new RuntimeException(t.getMessage());
}
}
+
+ public EntityAdapter getComplexToOneRelation(String aMainTablePrefix, List someExtraTables,
+ String aWhereClause, String anOrderByClause, String aDefinition) {
+ try {
+ Iterator i = new EntityIteratorAdapter(aMainTablePrefix, someExtraTables, aWhereClause, anOrderByClause, -1,
+ getModel(), aDefinition, -1, 0);
+
+ if (i.hasNext())
+ return (EntityAdapter) i.next();
+ else
+ return null;
+ }
+ catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+
}
\ No newline at end of file
anEntityAdapterDefinition.addCalculatedField("to_media_audio", new ContentToMediaField( "audio" ));\r
anEntityAdapterDefinition.addCalculatedField("to_media_video", new ContentToMediaField( "video" ));\r
anEntityAdapterDefinition.addCalculatedField("to_media_other", new ContentToMediaField( "otherMedia" ));\r
+\r
+ anEntityAdapterDefinition.addCalculatedField("firstImage", new ContentToFirstMediaField( "image" ));\r
+ anEntityAdapterDefinition.addCalculatedField("firstAudio", new ContentToFirstMediaField( "audio" ));\r
+ anEntityAdapterDefinition.addCalculatedField("firstVideo", new ContentToFirstMediaField( "video" ));\r
+ anEntityAdapterDefinition.addCalculatedField("firstOther", new ContentToFirstMediaField( "otherMedia" ));\r
+\r
anEntityAdapterDefinition.addCalculatedField("to_all_uploaded_media", new ContentToMediaField( "uploadedMedia", false));\r
anEntityAdapterDefinition.addCalculatedField("to_all_media_images", new ContentToMediaField( "image", false));\r
anEntityAdapterDefinition.addCalculatedField("to_all_media_audio", new ContentToMediaField( "audio", false));\r
}\r
}\r
\r
+ protected class ContentToFirstMediaField implements EntityAdapterDefinition.CalculatedField {\r
+ private String definition;\r
+ private boolean published;\r
+\r
+ public ContentToFirstMediaField(String aDefinition, boolean anOnlyPublished) {\r
+ definition = aDefinition;\r
+ published = anOnlyPublished;\r
+ }\r
+\r
+ public ContentToFirstMediaField(String aDefinition) {\r
+ this(aDefinition, true);\r
+ }\r
+\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ String condition = "cxm.content_id="+ anEntityAdapter.get("id") +\r
+ " and cxm.media_id = m.id";\r
+ if (published)\r
+ condition = "is_published='t' and " + condition;\r
+\r
+ List extraTables = new Vector();\r
+ extraTables.add("content_x_media cxm");\r
+\r
+ return anEntityAdapter.getComplexToOneRelation("m", extraTables, condition, "id", definition)\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+\r
protected class CommentToMediaField implements EntityAdapterDefinition.CalculatedField {\r
private String definition;\r
private boolean published;\r