You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/01/04 11:12:09 UTC

svn commit: r492498 - /ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java

Author: jaz
Date: Thu Jan  4 02:12:08 2007
New Revision: 492498

URL: http://svn.apache.org/viewvc?view=rev&rev=492498
Log:
updated the content wrapper with new methdods i.e. get (without cache) getId (contentId) getFromDate getList

Modified:
    ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java

Modified: ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java?view=diff&rev=492498&r1=492497&r2=492498
==============================================================================
--- ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java (original)
+++ ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/content/WorkEffortContentWrapper.java Thu Jan  4 02:12:08 2007
@@ -16,13 +16,11 @@
  */
 package org.ofbiz.workeffort.content;
 
-import java.util.Locale;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
+import java.util.*;
 import java.io.Writer;
 import java.io.IOException;
 import java.io.StringWriter;
+import java.sql.Timestamp;
 import javax.servlet.http.HttpServletRequest;
 
 import org.ofbiz.content.content.ContentWrapper;
@@ -39,6 +37,8 @@
 import org.ofbiz.base.util.GeneralRuntimeException;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.cache.UtilCache;
+import javolution.util.FastMap;
+import javolution.util.FastList;
 
 /**
  * WorkEffortContentWrapper; gets work effort content for display
@@ -67,36 +67,86 @@
     }
 
     // interface implementation
+    public String get(String workEffortContentId, boolean useCache) {
+        return getWorkEffortContentAsText(workEffort, workEffortContentId, locale, mimeTypeId, workEffort.getDelegator(), useCache);
+    }
+
     public String get(String workEffortContentId) {
-        return getWorkEffortContentAsText(workEffort, workEffortContentId, locale, mimeTypeId, workEffort.getDelegator());
+        return get(workEffortContentId, true);
+    }
+
+    public String getId(String workEffortContentId) {
+        GenericValue workEffortContent = getFirstWorkEffortContentByType(null, workEffort, workEffortContentId, workEffort.getDelegator());
+        if (workEffortContent != null) {
+            return workEffortContent.getString("contentId");
+        } else {
+            return null;
+        }
+    }
+
+    public Timestamp getFromDate(String workEffortContentId) {
+        GenericValue workEffortContent = getFirstWorkEffortContentByType(null, workEffort, workEffortContentId, workEffort.getDelegator());
+        if (workEffortContent != null) {
+            return workEffortContent.getTimestamp("fromDate");
+        } else {
+            return null;
+        }
+    }
+
+    public List getList(String contentTypeId) {
+        try {
+            return getWorkEffortContentTextList(workEffort, contentTypeId, locale, mimeTypeId, workEffort.getDelegator());
+        } catch (Exception e) {
+            Debug.logError(e, module);
+            return null;
+        }
+    }
+
+    public String getContent(String contentId, boolean useCache) {
+        return getWorkEffortContentAsText(workEffort, contentId, null, locale, mimeTypeId, workEffort.getDelegator(), useCache);
+    }
+
+    public String getContent(String contentId) {
+        return getContent(contentId, true);
     }
 
     // static method helpers
-    public static String getWorkEffortContentAsText(GenericValue workEffort, String workEffortContentId, HttpServletRequest request) {
-        return getWorkEffortContentAsText(workEffort, workEffortContentId, UtilHttp.getLocale(request), "text/html", workEffort.getDelegator());
+     public static String getWorkEffortContentAsText(GenericValue workEffort, String workEffortContentTypeId, HttpServletRequest request) {
+        return getWorkEffortContentAsText(workEffort, workEffortContentTypeId, UtilHttp.getLocale(request), "text/html", workEffort.getDelegator(), true);
     }
 
-    public static String getWorkEffortContentAsText(GenericValue workEffort, String workEffortContentId, Locale locale) {
-        return getWorkEffortContentAsText(workEffort, workEffortContentId, locale, null, null);
+    public static String getWorkEffortContentAsText(GenericValue workEffort, String workEffortContentTypeId, Locale locale) {
+        return getWorkEffortContentAsText(workEffort, workEffortContentTypeId, locale, null, null, true);
     }
 
     public static String getWorkEffortContentAsText(GenericValue workEffort, String workEffortContentTypeId,
-            Locale locale, String mimeTypeId, GenericDelegator delegator) {
+            Locale locale, String mimeTypeId, GenericDelegator delegator, boolean useCache) {
+        return getWorkEffortContentAsText(workEffort, null, workEffortContentTypeId, locale, mimeTypeId, delegator, useCache);
+    }
+
+    public static String getWorkEffortContentAsText(GenericValue workEffort, String contentId, String workEffortContentTypeId,
+            Locale locale, String mimeTypeId, GenericDelegator delegator, boolean useCache) {
         if (workEffort == null) {
             return null;
         }
 
         String candidateFieldName = ModelUtil.dbNameToVarName(workEffortContentTypeId);
-        String cacheKey = workEffortContentTypeId + CACHE_KEY_SEPARATOR + locale + CACHE_KEY_SEPARATOR + mimeTypeId +
-                CACHE_KEY_SEPARATOR + workEffort.get("workEffortId");
+        String cacheKey;
+        if (contentId != null) {
+            cacheKey = contentId + CACHE_KEY_SEPARATOR + locale + CACHE_KEY_SEPARATOR + mimeTypeId +
+                    CACHE_KEY_SEPARATOR + workEffort.get("workEffortId");
+        } else {
+            cacheKey = workEffortContentTypeId + CACHE_KEY_SEPARATOR + locale + CACHE_KEY_SEPARATOR + mimeTypeId +
+                    CACHE_KEY_SEPARATOR + workEffort.get("workEffortId");
+        }
 
         try {
-            if (workEffortContentCache.get(cacheKey) != null) {
+            if (useCache && workEffortContentCache.get(cacheKey) != null) {
                 return (String) workEffortContentCache.get(cacheKey);
             }
 
             Writer outWriter = new StringWriter();
-            getWorkEffortContentAsText(null, workEffort, workEffortContentTypeId, locale, mimeTypeId, delegator, outWriter);
+            getWorkEffortContentAsText(contentId, null, workEffort, workEffortContentTypeId, locale, mimeTypeId, delegator, outWriter);
             String outString = outWriter.toString();
             if (outString.length() > 0) {
                 if (workEffortContentCache != null) {
@@ -118,7 +168,7 @@
         }               
     }
 
-    public static void getWorkEffortContentAsText(String workEffortId, GenericValue workEffort, String workEffortContentTypeId, Locale locale, String mimeTypeId, GenericDelegator delegator, Writer outWriter) throws GeneralException, IOException {
+    public static void getWorkEffortContentAsText(String contentId, String workEffortId, GenericValue workEffort, String workEffortContentTypeId, Locale locale, String mimeTypeId, GenericDelegator delegator, Writer outWriter) throws GeneralException, IOException {   
         if (workEffortId == null && workEffort != null) {
             workEffortId = workEffort.getString("workEffortId");
         }
@@ -135,6 +185,7 @@
             throw new GeneralRuntimeException("Unable to find a delegator to use!");
         }
 
+        // check for workeffort field
         String candidateFieldName = ModelUtil.dbNameToVarName(workEffortContentTypeId);
         ModelEntity workEffortModel = delegator.getModelEntity("WorkEffort");
         if (workEffortModel != null && workEffortModel.isField(candidateFieldName)) {
@@ -150,15 +201,68 @@
             }
         }
 
-        List workEffortContentList = delegator.findByAndCache("WorkEffortContent", UtilMisc.toMap("workEffortId", workEffortId, "workEffortContentTypeId", workEffortContentTypeId), UtilMisc.toList("-fromDate"));
-        workEffortContentList = EntityUtil.filterByDate(workEffortContentList);
-        GenericValue workEffortContent = EntityUtil.getFirst(workEffortContentList);
+        // otherwise check content record
+        GenericValue workEffortContent;
+        if (contentId != null) {
+            workEffortContent = delegator.findByPrimaryKeyCache("WorkEffortContent", UtilMisc.toMap("workEffortId", workEffortId, "contentId", contentId));
+        } else {
+            workEffortContent = getFirstWorkEffortContentByType(workEffortId, workEffort, workEffortContentTypeId, delegator);
+        }
         if (workEffortContent != null) {
             // when rendering the product content, always include the Product and ProductContent records that this comes from
-            Map inContext = new HashMap();
+            Map inContext = FastMap.newInstance();
             inContext.put("workEffort", workEffort);
             inContext.put("workEffortContent", workEffortContent);
             ContentWorker.renderContentAsText(delegator, workEffortContent.getString("contentId"), outWriter, inContext, null, locale, mimeTypeId);
+        }
+    }
+
+    public static List getWorkEffortContentTextList(GenericValue workEffort, String workEffortContentTypeId, Locale locale, String mimeTypeId, GenericDelegator delegator) throws GeneralException, IOException {
+        List partyContentList = delegator.findByAndCache("WorkEffortContent", UtilMisc.toMap("workEffortId", workEffort.getString("partyId"), "workEffortContentTypeId", workEffortContentTypeId), UtilMisc.toList("-fromDate"));
+        partyContentList = EntityUtil.filterByDate(partyContentList);
+
+        List contentList = FastList.newInstance();
+        if (partyContentList != null) {
+            Iterator i = partyContentList.iterator();
+            while (i.hasNext()) {
+                GenericValue workEffortContent = (GenericValue) i.next();
+                StringWriter outWriter = new StringWriter();
+                Map inContext = FastMap.newInstance();
+                inContext.put("workEffort", workEffort);
+                inContext.put("workEffortContent", workEffortContent);
+                ContentWorker.renderContentAsText(delegator, workEffortContent.getString("contentId"), outWriter, inContext, null, locale, mimeTypeId);
+                contentList.add(outWriter.toString());
+            }
+        }
+
+        return contentList;
+    }
+
+    public static GenericValue getFirstWorkEffortContentByType(String workEffortId, GenericValue workEffort, String workEffortContentTypeId, GenericDelegator delegator) {
+        if (workEffortId == null && workEffort != null) {
+            workEffortId = workEffort.getString("workEffortId");
+        }
+
+        if (delegator == null && workEffort != null) {
+            delegator = workEffort.getDelegator();
+        }
+
+        if (delegator == null) {
+            throw new IllegalArgumentException("GenericDelegator missing");
+        }
+        
+        List workEffortContentList = null;
+        try {
+                workEffortContentList = delegator.findByAndCache("WorkEffortContent", UtilMisc.toMap("workEffortId", workEffortId, "workEffortContentTypeId", workEffortContentTypeId), UtilMisc.toList("-fromDate"));
+        } catch (GeneralException e) {
+            Debug.logError(e, module);
+        }
+
+        if (workEffortContentList != null) {
+            workEffortContentList = EntityUtil.filterByDate(workEffortContentList);
+            return EntityUtil.getFirst(workEffortContentList);
+        } else {
+            return null;
         }
     }