X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicDataModelLocalizer.java;h=e3d2d17231e522e656f527088b2c1ad19b636336;hb=6874c3a58e85fdb9ebf216d4c09eb466bda6f4f7;hp=1523560d80314f1e39e953e28a70e601f54b10b1;hpb=6e0cd0d8650db7143b8c21f156df52a51902564d;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java b/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java index 1523560d..e3d2d172 100755 --- a/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java @@ -41,9 +41,8 @@ import mir.entity.adapter.EntityAdapter; import mir.entity.adapter.EntityAdapterDefinition; import mir.entity.adapter.EntityAdapterModel; import mir.log.LoggerWrapper; -import mircoders.media.MediaHelper; -import mir.misc.NumberUtils; import mir.media.MediaHandler; +import mir.misc.NumberUtils; import mir.util.ParameterExpander; import mir.util.RewindableIterator; import mir.util.StructuredContentParser; @@ -53,6 +52,8 @@ import mircoders.localizer.MirAdminInterfaceLocalizer; import mircoders.localizer.MirDataModelLocalizer; import mircoders.localizer.MirLocalizerExc; import mircoders.localizer.MirLocalizerFailure; +import mircoders.media.MediaHelper; +import mircoders.module.ModuleContent; import mircoders.storage.DatabaseArticleType; import mircoders.storage.DatabaseAudio; import mircoders.storage.DatabaseBreaking; @@ -93,6 +94,10 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer { 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("lockinguser", new ContentToUserField("to_locking_user")); + anEntityAdapterDefinition.addCalculatedField("is_locked", new ContentToIsLockedField()); + anEntityAdapterDefinition.addCalculatedField("to_topics", new ContentToTopicsField()); anEntityAdapterDefinition.addCalculatedField("to_comments", new ContentToCommentsField()); anEntityAdapterDefinition.addCalculatedField("language", new ContentToLanguageField()); @@ -231,7 +236,13 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer { result.addMapping( "language", DatabaseLanguage.getInstance(), new EntityAdapterDefinition()); result.addMapping( "mediaType", DatabaseMediaType.getInstance(), new EntityAdapterDefinition()); result.addMapping( "topic", DatabaseTopics.getInstance(), new EntityAdapterDefinition()); - result.addMapping( "user", DatabaseUsers.getInstance(), new EntityAdapterDefinition()); + + definition = new EntityAdapterDefinition(); + definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone")); + definition.addDBDateField("lastlogindate", "lastlogin", configuration.getString("Mir.DefaultTimezone")); + definition.addCalculatedField("structuredProfile", new StructuredContentField("profile")); + result.addMapping( "user", DatabaseUsers.getInstance(), definition); + result.addMapping( "otherMedia", DatabaseOther.getInstance(), new EntityAdapterDefinition()); result.addMapping( "content_x_topic", DatabaseContentToTopics.getInstance(), new EntityAdapterDefinition()); @@ -377,7 +388,7 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer { protected class ContentToParentField implements EntityAdapterDefinition.CalculatedField { public Object getValue(EntityAdapter anEntityAdapter) { try { - logger.debug("ContentToParentField.getValue"); + logger.debug("ContentToParentField.getFieldValue"); return anEntityAdapter.getToOneRelation( "id="+anEntityAdapter.get("to_content"), "id", @@ -734,95 +745,41 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer { } } } -} + protected class ContentToUserField implements EntityAdapterDefinition.CalculatedField { + private String fieldName; -/* - public String getValue(String key) { - String returnValue = null; - - if (key != null) { - if (key.equals("big_icon")) - returnValue = getBigIconName(); - else if (key.equals("descr") || key.equals("media_descr")) - returnValue = getDescr(); - else if (key.equals("mediatype")) - returnValue = getMediaTypeString(); - else if (key.equals("mimetype")) - returnValue = getMimeType(); - else - returnValue = super.getValue(key); + public ContentToUserField(String aFieldName) { + fieldName = aFieldName; } - return returnValue; - } - - // @todo all these methods should be merged into 1 - // and the MediaHandler should be cached somehow. - private String getMediaTypeString() { - if (this instanceof EntityImages) - return "image"; - if (this instanceof EntityAudio) - return "audio"; - if (this instanceof EntityVideo) - return "video"; - else - return "other"; - } - -private String getBigIconName() { - MediaHandler mediaHandler = null; - Entity mediaType = null; - - try { - mediaType = getMediaType(); - mediaHandler = MediaHelper.getHandler(mediaType); - return mediaHandler.getBigIconName(); - } - catch (Exception ex) { - logger.warn("EntityUploadedMedia.getBigIconName: could not fetch data: " + ex.toString()); - } - return null; -} -private List getUrl() { - MediaHandler mediaHandler = null; - Entity mediaType = null; - - try { - mediaType = getMediaType(); - mediaHandler = MediaHelper.getHandler(mediaType); - return mediaHandler.getURL(this, mediaType); - } - catch (Throwable t) { - logger.warn("EntityUploadedMedia.getUrl: could not fetch data: " + t.toString()); + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return anEntityAdapter.getToOneRelation( + "id=" + anEntityAdapter.get(fieldName), + "id", + "user"); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } } - return null; -} -private String getDescr() { - MediaHandler mediaHandler = null; - Entity mediaType = null; + protected class ContentToIsLockedField implements EntityAdapterDefinition.CalculatedField { + private ModuleContent contentModule; - try { - mediaType = getMediaType(); - mediaHandler = MediaHelper.getHandler(mediaType); - return mediaHandler.getDescr(mediaType); - } - catch (Exception ex) { - logger.warn("EntityUploadedMedia.getDescr: could not fetch data: " + ex.toString()); - } - return null; -} -private String getMimeType() { - Entity mediaType = null; + public ContentToIsLockedField() { + contentModule = new ModuleContent(DatabaseContent.getInstance()); + } - try { - mediaType = getMediaType(); - return mediaType.getValue("mime_type"); - } - catch (Exception ex) { - logger.warn("EntityUploadedMedia.getBigIconName: could not fetch data: " + ex.toString()); + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return new Boolean(contentModule.queryArticleLock(anEntityAdapter.getEntity().getId())!=null); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } } - return null; } -*/ \ No newline at end of file