import mircoders.storage.DatabaseComment;
import mircoders.storage.DatabaseCommentStatus;
import mircoders.storage.DatabaseContent;
+import mircoders.storage.DatabaseContentToMedia;
import mircoders.storage.DatabaseContentToTopics;
import mircoders.storage.DatabaseImageType;
import mircoders.storage.DatabaseImages;
import mircoders.storage.DatabaseLanguage;
-import mircoders.storage.DatabaseMedia;
import mircoders.storage.DatabaseMediaType;
import mircoders.storage.DatabaseMediafolder;
import mircoders.storage.DatabaseMessages;
protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure, MirLocalizerExc {
try {
- anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create");
- anEntityAdapterDefinition.addDBDateField("changedate", "webdb_lastchange");
- anEntityAdapterDefinition.addMirDateField("date", "date");
+ anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
+ anEntityAdapterDefinition.addDBDateField("changedate", "webdb_lastchange", configuration.getString("Mir.DefaultTimezone"));
+ anEntityAdapterDefinition.addMirDateField("date", "date", configuration.getString("Mir.DefaultTimezone"));
anEntityAdapterDefinition.addCalculatedField("to_topics", new ContentToTopicsField());
anEntityAdapterDefinition.addCalculatedField("to_comments", new ContentToCommentsField());
anEntityAdapterDefinition.addCalculatedField("language", new ContentToLanguageField());
protected void constructCommentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure {
try {
- anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create");
+ anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
anEntityAdapterDefinition.addCalculatedField("to_content", new CommentToContentField());
anEntityAdapterDefinition.addCalculatedField("status", new CommentToStatusField());
result.addMapping( "commentStatus", DatabaseCommentStatus.getInstance(), new EntityAdapterDefinition());
definition = new EntityAdapterDefinition();
- definition.addDBDateField("creationdate", "webdb_create");
+ definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
result.addMapping( "breakingNews", DatabaseBreaking.getInstance(), definition);
+ definition = new EntityAdapterDefinition();
+ definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
+ result.addMapping( "internalMessage", DatabaseMessages.getInstance(), definition);
+
+ definition = new EntityAdapterDefinition();
+ definition.addCalculatedField("mediafolder", new MediaToMediaFolderField());
+ result.addMapping( "uploadedMedia", DatabaseUploadedMedia.getInstance(), definition);
+ definition = new EntityAdapterDefinition();
+ definition.addCalculatedField("mediafolder", new MediaToMediaFolderField());
+ result.addMapping( "image", DatabaseImages.getInstance(), definition);
+ definition = new EntityAdapterDefinition();
+ definition.addCalculatedField("mediafolder", new MediaToMediaFolderField());
+ result.addMapping( "audio", DatabaseAudio.getInstance(), definition);
+ definition = new EntityAdapterDefinition();
+ definition.addCalculatedField("mediafolder", new MediaToMediaFolderField());
+ result.addMapping( "video", DatabaseVideo.getInstance(), definition);
+ definition = new EntityAdapterDefinition();
+ definition.addCalculatedField("mediafolder", new MediaToMediaFolderField());
+ result.addMapping( "otherMedia", DatabaseOther.getInstance(), definition);
+
+
+ result.addMapping( "mediaFolder", DatabaseMediafolder.getInstance(), new EntityAdapterDefinition());
result.addMapping( "imageType", DatabaseImageType.getInstance(), new EntityAdapterDefinition());
result.addMapping( "language", DatabaseLanguage.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "mediaFolder", DatabaseMediafolder.getInstance(), new EntityAdapterDefinition());
result.addMapping( "mediaType", DatabaseMediaType.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "internalMessage", DatabaseMessages.getInstance(), new EntityAdapterDefinition());
result.addMapping( "topic", DatabaseTopics.getInstance(), new EntityAdapterDefinition());
result.addMapping( "user", DatabaseUsers.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "media", DatabaseMedia.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "uploadedMedia", DatabaseUploadedMedia.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "image", DatabaseImages.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "audio", DatabaseAudio.getInstance(), new EntityAdapterDefinition());
- result.addMapping( "video", DatabaseVideo.getInstance(), new EntityAdapterDefinition());
result.addMapping( "otherMedia", DatabaseOther.getInstance(), new EntityAdapterDefinition());
result.addMapping( "content_x_topic", DatabaseContentToTopics.getInstance(), new EntityAdapterDefinition());
}
}
+ protected class MediaToMediaFolderField implements EntityAdapterDefinition.CalculatedField {
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ try {
+ return anEntityAdapter.getToOneRelation(
+ "id="+anEntityAdapter.get("to_media_folder"),
+ "id",
+ "mediaFolder" );
+ }
+ catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+ }
+
protected class ContentToCommentsField implements EntityAdapterDefinition.CalculatedField {
private String extracondition;
private String order;
protected class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField {
private String topicCondition;
+ private String topicOrder;
public ContentToTopicsField() {
this(null);
}
public ContentToTopicsField(String aTopicCondition) {
+ this(aTopicCondition, "title");
+ }
+
+ public ContentToTopicsField(String aTopicCondition, String aTopicOrder) {
topicCondition = aTopicCondition;
+ topicOrder = aTopicOrder;
}
+ // TODO rewrite as relational select
public Object getValue(EntityAdapter anEntityAdapter) {
try {
String condition = "exists (select * from content_x_topic where content_id="+anEntityAdapter.get("id")+" and topic_id=id)";
return anEntityAdapter.getRelation(
condition,
- "title",
+ topicOrder,
"topic" );
}
catch (Throwable t) {
public Object getValue(EntityAdapter anEntityAdapter) {
try {
+ // TODO rewrite as relational select
String condition = "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)";
if (published)
condition = "is_published='t' and " + condition;
public Object getValue(EntityAdapter anEntityAdapter) {
try {
+ // TODO rewrite as relational select
String condition = "exists (select * from comment_x_media where comment_id="+anEntityAdapter.get("id")+" and media_id=id)";
if (published)
condition = "is_published='t' and " + condition;
}
}
}
+
+ protected class ContentMediaCountField implements EntityAdapterDefinition.CalculatedField {
+ private String table;
+ private boolean published;
+
+ public ContentMediaCountField(String aTable, boolean anOnlyPublished) {
+ table = aTable;
+ published = anOnlyPublished;
+ }
+
+ public ContentMediaCountField(String aTable) {
+ this(aTable, true);
+ }
+
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ try {
+ String subQuery = "select * from "+table+" where id = media_id";
+ if (published)
+ subQuery = subQuery + " and is_published='t'";
+
+ return Integer.toString(
+ DatabaseContentToMedia.getInstance().getSize(
+ "exists ("+subQuery+")"));
+ }
+ catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+ }
}