Author: jonesde
Date: Fri Mar 9 18:24:57 2007 New Revision: 516640 URL: http://svn.apache.org/viewvc?view=rev&rev=516640 Log: Some cleanups, including more consistent use of cache settings; started add of link entry, though still need to look into how to implement that Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java?view=diff&rev=516640&r1=516639&r2=516640 ============================================================================== --- ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java (original) +++ ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java Fri Mar 9 18:24:57 2007 @@ -34,6 +34,7 @@ import javolution.util.FastList; import javolution.util.FastMap; +import javolution.util.FastSet; /** * ContentMapFacade @@ -50,13 +51,14 @@ protected final Locale locale; protected final String mimeType; protected final boolean cache; - protected boolean render = true; + protected boolean allowRender = true; // internal objects private DataResource dataResource; private SubContent subContent; private MetaData metaData; private Content content; + private GenericValue fields = null; public ContentMapFacade(LocalDispatcher dispatcher, GenericValue content, Map context, Locale locale, String mimeTypeId, boolean cache) { this.dispatcher = dispatcher; @@ -67,7 +69,7 @@ this.cache = cache; this.contentId = content.getString("contentId"); this.delegator = content.getDelegator(); - this.render = false; + this.allowRender = false; init(); } @@ -80,7 +82,11 @@ this.mimeType = mimeTypeId; this.cache = cache; try { - this.value = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", contentId)); + if (cache) { + this.value = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", contentId)); + } else { + this.value = delegator.findByPrimaryKey("Content", UtilMisc.toMap("contentId", contentId)); + } } catch (GenericEntityException e) { Debug.logError(e, module); throw new RuntimeException(e.getMessage()); @@ -96,12 +102,12 @@ } public void setRenderFlag(boolean render) { - this.render = render; + this.allowRender = render; } // interface methods public int size() { - return 0; + return 1; } public boolean isEmpty() { @@ -135,8 +141,18 @@ } public Set keySet() { - Debug.logWarning("This method [keySet()] is not implemented in ContentMapFacade", module); - return null; + Debug.logWarning("This method [keySet()] is not completely implemented in ContentMapFacade", module); + Set keys = FastSet.newInstance(); + keys.add("fields"); + keys.add("link"); + keys.add("data"); + keys.add("dataresource"); + keys.add("subcontent"); + keys.add("subcontent_all"); + keys.add("metadata"); + keys.add("content"); + keys.add("render"); + return keys; } public Collection values() { @@ -157,29 +173,38 @@ } String name = (String) obj; - // fields key, returns value object if ("fields".equalsIgnoreCase(name)) { - GenericValue value = null; + // fields key, returns value object + if (this.fields != null) { + return fields; + } try { - value = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", contentId)); + if (cache) { + this.fields = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", contentId)); + } else { + this.fields = delegator.findByPrimaryKey("Content", UtilMisc.toMap("contentId", contentId)); + } } catch (GenericEntityException e) { Debug.logError(e, module); } - return value; - - } + return this.fields; - // data (resource) object - if ("data".equalsIgnoreCase(name) || "dataresource".equalsIgnoreCase(name)) { + } else if ("link".equalsIgnoreCase(name)) { + // link to this content + return ""; + } else if ("data".equalsIgnoreCase(name) || "dataresource".equalsIgnoreCase(name)) { + // data (resource) object return dataResource; - } - - // subcontent list of ordered subcontent - if ("subcontent_all".equalsIgnoreCase(name)) { + } else if ("subcontent_all".equalsIgnoreCase(name)) { + // subcontent list of ordered subcontent List subContent = FastList.newInstance(); List subs = null; try { - subs = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId", contentId), UtilMisc.toList("-fromDate")); + if (cache) { + subs = delegator.findByAndCache("ContentAssoc", UtilMisc.toMap("contentId", contentId), UtilMisc.toList("-fromDate")); + } else { + subs = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId", contentId), UtilMisc.toList("-fromDate")); + } } catch (GenericEntityException e) { Debug.logError(e, module); } @@ -193,25 +218,17 @@ } } return subContent; - } - - // return the subcontent object - if ("subcontent".equalsIgnoreCase(name)) { + } else if ("subcontent".equalsIgnoreCase(name)) { + // return the subcontent object return this.subContent; - } - - // return list of metaData by predicate ID - if ("metadata".equalsIgnoreCase(name)) { + } else if ("metadata".equalsIgnoreCase(name)) { + // return list of metaData by predicate ID return this.metaData; - } - - // content; returns object from contentId - if ("content".equalsIgnoreCase(name)) { + } else if ("content".equalsIgnoreCase(name)) { + // content; returns object from contentId return content; - } - - // render this content - if ("render".equalsIgnoreCase(name)) { + } else if ("render".equalsIgnoreCase(name)) { + // render this content return this.renderThis(); } @@ -221,7 +238,7 @@ protected String renderThis() { Map renderCtx = FastMap.newInstance(); renderCtx.putAll(context); - if (!render) { + if (!allowRender) { String errorMsg = "WARNING: Cannot render content being rendered! (Infinite Recursion NOT allowed!)"; Debug.logWarning(errorMsg, module); return "=========> " + errorMsg + " <========="; @@ -243,7 +260,7 @@ abstract class AbstractInfo implements Map { public int size() { - return 0; + return 1; } public boolean isEmpty() { @@ -309,7 +326,11 @@ // look up the content ID (of name) GenericValue content = null; try { - content = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", name)); + if (cache) { + content = delegator.findByPrimaryKeyCache("Content", UtilMisc.toMap("contentId", name)); + } else { + content = delegator.findByPrimaryKey("Content", UtilMisc.toMap("contentId", name)); + } } catch (GenericEntityException e) { Debug.logError(e, module); } @@ -335,7 +356,11 @@ // key is the mapKey List subs = null; try { - subs = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId", contentId, "mapKey", name), UtilMisc.toList("-fromDate")); + if (cache) { + subs = delegator.findByAndCache("ContentAssoc", UtilMisc.toMap("contentId", contentId, "mapKey", name), UtilMisc.toList("-fromDate")); + } else { + subs = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId", contentId, "mapKey", name), UtilMisc.toList("-fromDate")); + } } catch (GenericEntityException e) { Debug.logError(e, module); } @@ -360,7 +385,11 @@ String name = (String) key; List metaData = null; try { - metaData = delegator.findByAnd("ContentMetaData", UtilMisc.toMap("contentId", contentId, "metaDataPredicateId", name)); + if (cache) { + metaData = delegator.findByAndCache("ContentMetaData", UtilMisc.toMap("contentId", contentId, "metaDataPredicateId", name)); + } else { + metaData = delegator.findByAnd("ContentMetaData", UtilMisc.toMap("contentId", contentId, "metaDataPredicateId", name)); + } } catch (GenericEntityException e) { Debug.logError(e, module); } @@ -376,19 +405,21 @@ } String name = (String) key; - // get the data resource value object if ("fields".equalsIgnoreCase(name)) { + // get the data resource value object GenericValue dr = null; try { - dr = value.getRelatedOne("DataResource"); + if (cache) { + dr = value.getRelatedOneCache("DataResource"); + } else { + dr = value.getRelatedOne("DataResource"); + } } catch (GenericEntityException e) { Debug.logError(e, module); } return dr; - } - - // render just the dataresource - if ("render".equalsIgnoreCase(name)) { + } else if ("render".equalsIgnoreCase(name)) { + // render just the dataresource try { return DataResourceWorker.renderDataResourceAsText(delegator, value.getString("dataResourceId"), context, locale, mimeType, cache); } catch (GeneralException e) { |
Free forum by Nabble | Edit this page |