svn commit: r787930 - /ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r787930 - /ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java

adrianc
Author: adrianc
Date: Wed Jun 24 07:09:10 2009
New Revision: 787930

URL: http://svn.apache.org/viewvc?rev=787930&view=rev
Log:
Argh. I meant to clean this up before committing.

Modified:
    ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java

Modified: ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java?rev=787930&r1=787929&r2=787930&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java (original)
+++ ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/ICalConverter.java Wed Jun 24 07:09:10 2009
@@ -24,7 +24,6 @@
 import java.io.StringReader;
 import java.net.URISyntaxException;
 import java.sql.Timestamp;
-import java.text.ParseException;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
@@ -32,7 +31,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import javolution.util.FastList;
 import javolution.util.FastMap;
 import javolution.util.FastSet;
 
@@ -54,7 +52,6 @@
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityExpr;
 import org.ofbiz.entity.condition.EntityOperator;
 import org.ofbiz.entity.util.EntityUtil;
 import org.ofbiz.service.GenericServiceException;
@@ -307,6 +304,44 @@
         }
     }
 
+    /** Returns a calendar derived from a Work Effort calendar publish point.
+     *
+     * @param delegator
+     * @param workEffortId ID of a work effort with <code>workEffortTypeId</code> equal to
+     * <code>PUBLISH_PROPS</code>.
+     * @return An iCalendar as a <code>String</code>, or <code>null</code>
+     * if <code>workEffortId</code> is invalid.
+     * @throws GenericEntityException
+     */
+    public static String getICalendar(String workEffortId, Map<String, Object> context) throws GenericEntityException {
+        GenericDelegator delegator = (GenericDelegator) context.get("delegator");
+        GenericValue publishProperties = delegator.findOne("WorkEffort", UtilMisc.toMap("workEffortId", workEffortId), false);
+        if (!isCalendarPublished(publishProperties)) {
+            Debug.logInfo("WorkEffort calendar is not published: " + workEffortId, module);
+            return null;
+        }
+        if (!"WES_PUBLIC".equals(publishProperties.get("scopeEnumId")) && !hasPermission(workEffortId, "VIEW", context)) {
+            return null;
+        }
+        Calendar calendar = makeCalendar(publishProperties, context);
+        ComponentList components = calendar.getComponents();
+        List<GenericValue> workEfforts = getRelatedWorkEfforts(publishProperties, context);
+        if (workEfforts != null) {
+            for (GenericValue workEffort : workEfforts) {
+                toCalendarComponent(components, workEffort, context);
+            }
+        }
+        if (Debug.verboseOn()) {
+            try {
+                calendar.validate(true);
+                Debug.logVerbose("iCalendar passes validation", module);
+            } catch (ValidationException e) {
+                Debug.logVerbose("iCalendar fails validation: " + e, module);
+            }
+        }
+        return calendar.toString();
+    }
+
     protected static void getPartyPrimaryEmailAddress(Property property, GenericValue partyAssign, Map<String, Object> context) {
         Map<String, ? extends Object> serviceMap = UtilMisc.toMap("partyId", partyAssign.get("partyId"));
         Map<String, Object> resultMap = invokeService("getPartyICalUri", serviceMap, context);
@@ -331,6 +366,20 @@
         return null;
     }
 
+    protected static boolean hasPermission(String workEffortId, String action, Map<String, Object> context) {
+        if (context.get("userLogin") == null) {
+            return false;
+        }
+        Map<String, ? extends Object> serviceMap = UtilMisc.toMap("workEffortId", workEffortId, "mainAction", action);
+        Map<String, Object> serviceResult = invokeService("workEffortICalendarPermission", serviceMap, context);
+        Boolean hasPermission = (Boolean) serviceResult.get("hasPermission");
+        if (hasPermission != null) {
+            return hasPermission.booleanValue();
+        } else {
+            return false;
+        }
+    }
+
     protected static Map<String, Object> invokeService(String serviceName, Map<String, ? extends Object> serviceMap, Map<String, Object> context) {
         LocalDispatcher dispatcher = (LocalDispatcher) context.get("dispatcher");
         Map<String, Object> localMap = FastMap.newInstance();
@@ -364,6 +413,14 @@
         }
     }
 
+    protected static boolean isCalendarPublished(GenericValue publishProperties) {
+        if (publishProperties == null || !"PUBLISH_PROPS".equals(publishProperties.get("workEffortTypeId"))) {
+            return false;
+        }
+        DateRange range = new DateRange(publishProperties.getTimestamp("actualStartDate"), publishProperties.getTimestamp("actualCompletionDate"));
+        return range.includesDate(new Date());
+    }
+
     protected static void loadPartyAssignment(Property property, GenericValue partyAssign, Map<String, Object> context) {
         getPartyPrimaryEmailAddress(property, partyAssign, context);
         if (UtilValidate.isEmpty(property.getValue())) {
@@ -426,6 +483,44 @@
         replaceProperty(componentProps, toXProperty(workEffortIdXPropName, workEffort.getString("workEffortId")));
     }
 
+    protected static Calendar makeCalendar(GenericValue workEffort, Map<String, Object> context) throws GenericEntityException {
+        String iCalData = null;
+        GenericValue iCalValue = workEffort.getRelatedOne("WorkEffortIcalData");
+        if (iCalValue != null) {
+            iCalData = iCalValue.getString("icalData");
+        }
+        boolean newCalendar = true;
+        Calendar calendar = null;
+        if (iCalData == null) {
+            Debug.logVerbose("iCalendar Data not found, creating new Calendar", module);
+            calendar = new Calendar();
+        } else {
+            Debug.logVerbose("iCalendar Data found, using saved Calendar", module);
+            StringReader reader = new StringReader(iCalData);
+            CalendarBuilder builder = new CalendarBuilder();
+            try {
+                calendar = builder.build(reader);
+                newCalendar = false;
+            } catch (Exception e) {
+                Debug.logError(e, "Error while parsing saved iCalendar, creating new iCalendar: ", module);
+                calendar = new Calendar();
+            }
+        }
+        PropertyList propList = calendar.getProperties();
+        replaceProperty(propList, prodId);
+        replaceProperty(propList, new XProperty(workEffortIdXPropName, workEffort.getString("workEffortId")));
+        if (newCalendar) {
+            propList.add(Version.VERSION_2_0);
+            propList.add(CalScale.GREGORIAN);
+            // TODO: Get time zone from publish properties value
+            java.util.TimeZone tz = java.util.TimeZone.getDefault();
+            TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
+            net.fortuna.ical4j.model.TimeZone timezone = registry.getTimeZone(tz.getID());
+            calendar.getComponents().add(timezone.getVTimeZone());
+        }
+        return calendar;
+    }
+
     protected static String makePartyName(GenericValue partyAssign) {
         String partyName = partyAssign.getString("groupName");
         if (UtilValidate.isEmpty(partyName)) {
@@ -463,14 +558,6 @@
         map.put(key, value);
     }
 
-    protected static boolean isCalendarPublished(GenericValue publishProperties) {
-        if (publishProperties == null || !"PUBLISH_PROPS".equals(publishProperties.get("workEffortTypeId"))) {
-            return false;
-        }
-        DateRange range = new DateRange(publishProperties.getTimestamp("actualStartDate"), publishProperties.getTimestamp("actualCompletionDate"));
-        return range.includesDate(new Date());
-    }
-
     @SuppressWarnings("unchecked")
     public static void storeCalendar(InputStream is, Map<String, Object> context) throws IOException, ParserException, GenericEntityException, GenericServiceException {
         CalendarBuilder builder = new CalendarBuilder();
@@ -536,96 +623,6 @@
         }
     }
 
-    protected static boolean hasPermission(String workEffortId, String action, Map<String, Object> context) {
-        if (context.get("userLogin") == null) {
-            return false;
-        }
-        Map<String, ? extends Object> serviceMap = UtilMisc.toMap("workEffortId", workEffortId, "mainAction", action);
-        Map<String, Object> serviceResult = invokeService("workEffortICalendarPermission", serviceMap, context);
-        Boolean hasPermission = (Boolean) serviceResult.get("hasPermission");
-        if (hasPermission != null) {
-            return hasPermission.booleanValue();
-        } else {
-            return false;
-        }
-    }
-
-    /** Returns a calendar derived from a Work Effort calendar publish point.
-     *
-     * @param delegator
-     * @param workEffortId ID of a work effort with <code>workEffortTypeId</code> equal to
-     * <code>PUBLISH_PROPS</code>.
-     * @return An iCalendar as a <code>String</code>, or <code>null</code>
-     * if <code>workEffortId</code> is invalid.
-     * @throws GenericEntityException
-     */
-    public static String getICalendar(String workEffortId, Map<String, Object> context) throws GenericEntityException {
-        GenericDelegator delegator = (GenericDelegator) context.get("delegator");
-        GenericValue publishProperties = delegator.findOne("WorkEffort", UtilMisc.toMap("workEffortId", workEffortId), false);
-        if (!isCalendarPublished(publishProperties)) {
-            Debug.logInfo("WorkEffort calendar is not published: " + workEffortId, module);
-            return null;
-        }
-        if (!"WES_PUBLIC".equals(publishProperties.get("scopeEnumId")) && !hasPermission(workEffortId, "VIEW", context)) {
-            return null;
-        }
-        Calendar calendar = makeCalendar(publishProperties, context);
-        ComponentList components = calendar.getComponents();
-        List<GenericValue> workEfforts = getRelatedWorkEfforts(publishProperties, context);
-        if (workEfforts != null) {
-            for (GenericValue workEffort : workEfforts) {
-                toCalendarComponent(components, workEffort, context);
-            }
-        }
-        if (Debug.verboseOn()) {
-            try {
-                calendar.validate(true);
-                Debug.logVerbose("iCalendar passes validation", module);
-            } catch (ValidationException e) {
-                Debug.logVerbose("iCalendar fails validation: " + e, module);
-            }
-        }
-        return calendar.toString();
-    }
-
-    protected static Calendar makeCalendar(GenericValue workEffort, Map<String, Object> context) throws GenericEntityException {
-        String iCalData = null;
-        GenericValue iCalValue = workEffort.getRelatedOne("WorkEffortIcalData");
-        if (iCalValue != null) {
-            iCalData = iCalValue.getString("icalData");
-        }
-        boolean newCalendar = true;
-        Calendar calendar = null;
-        if (iCalData == null) {
-            Debug.logVerbose("iCalendar Data not found, creating new Calendar", module);
-            calendar = new Calendar();
-        } else {
-            Debug.logVerbose("iCalendar Data found, using saved Calendar", module);
-            StringReader reader = new StringReader(iCalData);
-            CalendarBuilder builder = new CalendarBuilder();
-            try {
-                calendar = builder.build(reader);
-                newCalendar = false;
-            } catch (Exception e) {
-                Debug.logError(e, "Error while parsing saved iCalendar, creating new iCalendar: ", module);
-                calendar = new Calendar();
-            }
-        }
-        PropertyList propList = calendar.getProperties();
-        replaceProperty(propList, prodId);
-        replaceProperty(propList, new XProperty(workEffortIdXPropName, workEffort.getString("workEffortId")));
-        if (newCalendar) {
-            propList.add(Version.VERSION_2_0);
-            propList.add(CalScale.GREGORIAN);
-            // TODO: Get time zone from publish properties value
-            java.util.TimeZone tz = java.util.TimeZone.getDefault();
-            TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
-            net.fortuna.ical4j.model.TimeZone timezone = registry.getTimeZone(tz.getID());
-            calendar.getComponents().add(timezone.getVTimeZone());
-        }
-        return calendar;
-    }
-
     protected static void storeWorkEffort(Component component, Map<String, Object> context) throws GenericEntityException, GenericServiceException {
         PropertyList propertyList = component.getProperties();
         String workEffortId = fromXProperty(propertyList, workEffortIdXPropName);