Add a Task message object in preperation for task synch support
authorMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 10 Apr 2010 16:32:54 +0000 (12:32 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 10 Apr 2010 16:32:54 +0000 (12:32 -0400)
...also consistently use self:: for these constants where appropriate

framework/ActiveSync/lib/Horde/ActiveSync.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Appointment.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Attendee.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Contact.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Exception.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Folder.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Recurrence.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Task.php [new file with mode: 0644]
framework/ActiveSync/package.xml

index 1f6556e..929e48f 100644 (file)
@@ -123,37 +123,6 @@ define("SYNC_MEETINGRESPONSE_STATUS","MeetingResponse:Status");
 define("SYNC_MEETINGRESPONSE_USERRESPONSE","MeetingResponse:UserResponse");
 define("SYNC_MEETINGRESPONSE_VERSION","MeetingResponse:Version");
 
-// POOMTASKS
-define("SYNC_POOMTASKS_BODY","POOMTASKS:Body");
-define("SYNC_POOMTASKS_BODYSIZE","POOMTASKS:BodySize");
-define("SYNC_POOMTASKS_BODYTRUNCATED","POOMTASKS:BodyTruncated");
-define("SYNC_POOMTASKS_CATEGORIES","POOMTASKS:Categories");
-define("SYNC_POOMTASKS_CATEGORY","POOMTASKS:Category");
-define("SYNC_POOMTASKS_COMPLETE","POOMTASKS:Complete");
-define("SYNC_POOMTASKS_DATECOMPLETED","POOMTASKS:DateCompleted");
-define("SYNC_POOMTASKS_DUEDATE","POOMTASKS:DueDate");
-define("SYNC_POOMTASKS_UTCDUEDATE","POOMTASKS:UtcDueDate");
-define("SYNC_POOMTASKS_IMPORTANCE","POOMTASKS:Importance");
-define("SYNC_POOMTASKS_RECURRENCE","POOMTASKS:Recurrence");
-define("SYNC_POOMTASKS_TYPE","POOMTASKS:Type");
-define("SYNC_POOMTASKS_START","POOMTASKS:Start");
-define("SYNC_POOMTASKS_UNTIL","POOMTASKS:Until");
-define("SYNC_POOMTASKS_OCCURRENCES","POOMTASKS:Occurrences");
-define("SYNC_POOMTASKS_INTERVAL","POOMTASKS:Interval");
-define("SYNC_POOMTASKS_DAYOFWEEK","POOMTASKS:DayOfWeek");
-define("SYNC_POOMTASKS_DAYOFMONTH","POOMTASKS:DayOfMonth");
-define("SYNC_POOMTASKS_WEEKOFMONTH","POOMTASKS:WeekOfMonth");
-define("SYNC_POOMTASKS_MONTHOFYEAR","POOMTASKS:MonthOfYear");
-define("SYNC_POOMTASKS_REGENERATE","POOMTASKS:Regenerate");
-define("SYNC_POOMTASKS_DEADOCCUR","POOMTASKS:DeadOccur");
-define("SYNC_POOMTASKS_REMINDERSET","POOMTASKS:ReminderSet");
-define("SYNC_POOMTASKS_REMINDERTIME","POOMTASKS:ReminderTime");
-define("SYNC_POOMTASKS_SENSITIVITY","POOMTASKS:Sensitivity");
-define("SYNC_POOMTASKS_STARTDATE","POOMTASKS:StartDate");
-define("SYNC_POOMTASKS_UTCSTARTDATE","POOMTASKS:UtcStartDate");
-define("SYNC_POOMTASKS_SUBJECT","POOMTASKS:Subject");
-define("SYNC_POOMTASKS_RTF","POOMTASKS:Rtf");
-
 // ResolveRecipients
 define("SYNC_RESOLVERECIPIENTS_RESOLVERECIPIENTS","ResolveRecipients:ResolveRecipients");
 define("SYNC_RESOLVERECIPIENTS_RESPONSE","ResolveRecipients:Response");
index 1b9cde5..f946a91 100644 (file)
@@ -98,28 +98,28 @@ class Horde_ActiveSync_Message_Appointment extends Horde_ActiveSync_Message_Base
      */
     public function __construct($params = array()) {
         $mapping = array(
-            self::POOMCAL_TIMEZONE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'timezone'),
-            self::POOMCAL_DTSTAMP => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'dtstamp', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE),
-            self::POOMCAL_STARTTIME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'starttime', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE),
-            self::POOMCAL_SUBJECT => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'subject'),
-            self::POOMCAL_UID => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'uid', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_HEX),
-            self::POOMCAL_ORGANIZERNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'organizername'),
-            self::POOMCAL_ORGANIZEREMAIL => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'organizeremail'),
-            self::POOMCAL_LOCATION => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'location'),
-            self::POOMCAL_ENDTIME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'endtime', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE),
-            self::POOMCAL_RECURRENCE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'recurrence', Horde_ActiveSync_Message_Base::KEY_TYPE => 'Horde_ActiveSync_Message_Recurrence'),
-            self::POOMCAL_SENSITIVITY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'sensitivity'),
-            self::POOMCAL_BUSYSTATUS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'busystatus'),
-            self::POOMCAL_ALLDAYEVENT => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'alldayevent'),
-            self::POOMCAL_REMINDER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'reminder'),
-            self::POOMCAL_RTF => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'rtf'),
-            self::POOMCAL_MEETINGSTATUS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'meetingstatus'),
-            self::POOMCAL_ATTENDEES => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'attendees', Horde_ActiveSync_Message_Base::KEY_TYPE => 'Horde_ActiveSync_Message_Attendee', Horde_ActiveSync_Message_Base::KEY_VALUES => self::POOMCAL_ATTENDEE),
-            self::POOMCAL_BODY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'body'),
-            self::POOMCAL_BODYTRUNCATED => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'bodytruncated'),
-            self::POOMCAL_EXCEPTIONS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'exceptions', Horde_ActiveSync_Message_Base::KEY_TYPE => 'Horde_ActiveSync_Message_Exception', Horde_ActiveSync_Message_Base::KEY_VALUES => self::POOMCAL_EXCEPTION),
-            self::POOMCAL_CATEGORIES => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'categories', Horde_ActiveSync_Message_Base::KEY_VALUES => self::POOMCAL_CATEGORY),
-            //self::POOMCAL_RESPONSETYPE => array(Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'responsetype'),
+            self::POOMCAL_TIMEZONE => array (self::KEY_ATTRIBUTE => 'timezone'),
+            self::POOMCAL_DTSTAMP => array (self::KEY_ATTRIBUTE => 'dtstamp', self::KEY_TYPE => self::TYPE_DATE),
+            self::POOMCAL_STARTTIME => array (self::KEY_ATTRIBUTE => 'starttime', self::KEY_TYPE => self::TYPE_DATE),
+            self::POOMCAL_SUBJECT => array (self::KEY_ATTRIBUTE => 'subject'),
+            self::POOMCAL_UID => array (self::KEY_ATTRIBUTE => 'uid', self::KEY_TYPE => self::TYPE_HEX),
+            self::POOMCAL_ORGANIZERNAME => array (self::KEY_ATTRIBUTE => 'organizername'),
+            self::POOMCAL_ORGANIZEREMAIL => array (self::KEY_ATTRIBUTE => 'organizeremail'),
+            self::POOMCAL_LOCATION => array (self::KEY_ATTRIBUTE => 'location'),
+            self::POOMCAL_ENDTIME => array (self::KEY_ATTRIBUTE => 'endtime', self::KEY_TYPE => self::TYPE_DATE),
+            self::POOMCAL_RECURRENCE => array (self::KEY_ATTRIBUTE => 'recurrence', self::KEY_TYPE => 'Horde_ActiveSync_Message_Recurrence'),
+            self::POOMCAL_SENSITIVITY => array (self::KEY_ATTRIBUTE => 'sensitivity'),
+            self::POOMCAL_BUSYSTATUS => array (self::KEY_ATTRIBUTE => 'busystatus'),
+            self::POOMCAL_ALLDAYEVENT => array (self::KEY_ATTRIBUTE => 'alldayevent'),
+            self::POOMCAL_REMINDER => array (self::KEY_ATTRIBUTE => 'reminder'),
+            self::POOMCAL_RTF => array (self::KEY_ATTRIBUTE => 'rtf'),
+            self::POOMCAL_MEETINGSTATUS => array (self::KEY_ATTRIBUTE => 'meetingstatus'),
+            self::POOMCAL_ATTENDEES => array (self::KEY_ATTRIBUTE => 'attendees', self::KEY_TYPE => 'Horde_ActiveSync_Message_Attendee', self::KEY_VALUES => self::POOMCAL_ATTENDEE),
+            self::POOMCAL_BODY => array (self::KEY_ATTRIBUTE => 'body'),
+            self::POOMCAL_BODYTRUNCATED => array (self::KEY_ATTRIBUTE => 'bodytruncated'),
+            self::POOMCAL_EXCEPTIONS => array (self::KEY_ATTRIBUTE => 'exceptions', self::KEY_TYPE => 'Horde_ActiveSync_Message_Exception', self::KEY_VALUES => self::POOMCAL_EXCEPTION),
+            self::POOMCAL_CATEGORIES => array (self::KEY_ATTRIBUTE => 'categories', self::KEY_VALUES => self::POOMCAL_CATEGORY),
+            //self::POOMCAL_RESPONSETYPE => array(self::KEY_ATTRIBUTE => 'responsetype'),
         );
 
         parent::__construct($mapping, $params);
index 2e9976e..f54252a 100644 (file)
@@ -29,10 +29,10 @@ class Horde_ActiveSync_Message_Attendee extends Horde_ActiveSync_Message_Base
      */
     function __construct($params = array()) {
         $mapping = array(
-            Horde_ActiveSync_Message_Appointment::POOMCAL_EMAIL => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'email'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_NAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'name'),
-            //SYNC_POOMCAL_ATTENDEETYPE => array(Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'type'),
-            //SYNC_POOMCAL_ATTENDEESTATUS => array(Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'status')
+            Horde_ActiveSync_Message_Appointment::POOMCAL_EMAIL => array (self::KEY_ATTRIBUTE => 'email'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_NAME => array (self::KEY_ATTRIBUTE => 'name'),
+            //SYNC_POOMCAL_ATTENDEETYPE => array(self::KEY_ATTRIBUTE => 'type'),
+            //SYNC_POOMCAL_ATTENDEESTATUS => array(self::KEY_ATTRIBUTE => 'status')
         );
 
         parent::__construct($mapping, $params);
index 3146d06..af41222 100644 (file)
@@ -124,10 +124,10 @@ class Horde_ActiveSync_Message_Base
             if ($entity[Horde_ActiveSync_Wbxml::EN_TYPE] == Horde_ActiveSync_Wbxml::EN_TYPE_STARTTAG) {
                 if (! ($entity[Horde_ActiveSync_Wbxml::EN_FLAGS] & Horde_ActiveSync_Wbxml::EN_FLAGS_CONTENT)) {
                     $map = $this->_mapping[$entity[Horde_ActiveSync_Wbxml::EN_TAG]];
-                    if (!isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE])) {
-                        $this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] = '';
-                    } elseif ($map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE || $map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE_DASHES ) {
-                        $this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] = '';
+                    if (!isset($map[self::KEY_TYPE])) {
+                        $this->$map[self::KEY_ATTRIBUTE] = '';
+                    } elseif ($map[self::KEY_TYPE] == self::TYPE_DATE || $map[self::KEY_TYPE] == self::TYPE_DATE_DASHES ) {
+                        $this->$map[self::KEY_ATTRIBUTE] = '';
                     }
                     continue;
                 }
@@ -140,22 +140,22 @@ class Horde_ActiveSync_Message_Base
                     $map = $this->_mapping[$entity[Horde_ActiveSync_Wbxml::EN_TAG]];
 
                     /* Handle arrays of attribute values */
-                    if (isset($map[Horde_ActiveSync_Message_Base::KEY_VALUES])) {
+                    if (isset($map[self::KEY_VALUES])) {
                         while (1) {
-                            if (!$decoder->getElementStartTag($map[Horde_ActiveSync_Message_Base::KEY_VALUES])) {
+                            if (!$decoder->getElementStartTag($map[self::KEY_VALUES])) {
                                 break;
                             }
-                            if (isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE])) {
-                                $decoded = new $map[Horde_ActiveSync_Message_Base::KEY_TYPE];
+                            if (isset($map[self::KEY_TYPE])) {
+                                $decoded = new $map[self::KEY_TYPE];
                                 $decoded->decodeStream($decoder);
                             } else {
                                 $decoded = $decoder->getElementContent();
                             }
 
-                            if (!isset($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE])) {
-                                $this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] = array($decoded);
+                            if (!isset($this->$map[self::KEY_ATTRIBUTE])) {
+                                $this->$map[self::KEY_ATTRIBUTE] = array($decoded);
                             } else {
-                                array_push($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE], $decoded);
+                                array_push($this->$map[self::KEY_ATTRIBUTE], $decoded);
                             }
 
                             if (!$decoder->getElementEndTag()) {
@@ -168,20 +168,20 @@ class Horde_ActiveSync_Message_Base
                         }
                     } else {
                         /* Handle a simple attribute value */
-                        if (isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE])) {
+                        if (isset($map[self::KEY_TYPE])) {
                             /* Complex type, decode recursively */
-                            if ($map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE || $map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE_DASHES) {
+                            if ($map[self::KEY_TYPE] == self::TYPE_DATE || $map[self::KEY_TYPE] == self::TYPE_DATE_DASHES) {
                                 $decoded = self::_parseDate($decoder->getElementContent());
                                 if (!$decoder->getElementEndTag()) {
                                     throw new Horde_ActiveSync_Exception('Missing expected wbxml end tag');
                                 }
-                            } elseif ($map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_HEX) {
+                            } elseif ($map[self::KEY_TYPE] == self::TYPE_HEX) {
                                 $decoded = self::hex2bin($decoder->getElementContent());
                                 if (!$decoder->getElementEndTag()) {
                                    throw new Horde_ActiveSync_Exception('Missing expected wbxml end tag');
                                 }
                             } else {
-                                $subdecoder = new $map[Horde_ActiveSync_Message_Base::KEY_TYPE]();
+                                $subdecoder = new $map[self::KEY_TYPE]();
                                 if ($subdecoder->decodeStream($decoder) === false) {
                                     throw new Horde_ActiveSync_Exception('Missing expected wbxml end tag');
                                 }
@@ -206,7 +206,7 @@ class Horde_ActiveSync_Message_Base
                             }
                         }
                         /* $decoded now contains data object (or string) */
-                        $this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] = $decoded;
+                        $this->$map[self::KEY_ATTRIBUTE] = $decoded;
                     }
                 }
             } elseif ($entity[Horde_ActiveSync_Wbxml::EN_TYPE] == Horde_ActiveSync_Wbxml::EN_TYPE_ENDTAG) {
@@ -250,29 +250,29 @@ class Horde_ActiveSync_Message_Base
     public function encodeStream(Horde_ActiveSync_Wbxml_Encoder &$encoder)
     {
         foreach ($this->_mapping as $tag => $map) {
-            if (isset($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE])) {
+            if (isset($this->$map[self::KEY_ATTRIBUTE])) {
                 /* Variable is available */
-                if (is_object($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]) && !($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] instanceof Horde_Date)) {
+                if (is_object($this->$map[self::KEY_ATTRIBUTE]) && !($this->$map[self::KEY_ATTRIBUTE] instanceof Horde_Date)) {
                     /* Subobjects can do their own encoding */
                     $encoder->startTag($tag);
-                    $this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]->encodeStream($encoder);
+                    $this->$map[self::KEY_ATTRIBUTE]->encodeStream($encoder);
                     $encoder->endTag();
-                } elseif (isset($map[Horde_ActiveSync_Message_Base::KEY_VALUES]) && is_array($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE])) {
+                } elseif (isset($map[self::KEY_VALUES]) && is_array($this->$map[self::KEY_ATTRIBUTE])) {
                     /* Array of objects */
                     $encoder->startTag($tag); // Outputs array container (eg Attachments)
-                    foreach ($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE] as $element) {
+                    foreach ($this->$map[self::KEY_ATTRIBUTE] as $element) {
                         if (is_object($element)) {
                             // Outputs object container (eg Attachment)
-                            $encoder->startTag($map[Horde_ActiveSync_Message_Base::KEY_VALUES]);
+                            $encoder->startTag($map[self::KEY_VALUES]);
                             $element->encodeStream($encoder);
                             $encoder->endTag();
                         } else {
                             if(strlen($element) == 0) {
                                   // Do not output empty items. Not sure if we
                                   // should output an empty tag with
-                                  // $encoder->startTag($map[Horde_ActiveSync_Message_Base::KEY_VALUES], false, true);
+                                  // $encoder->startTag($map[self::KEY_VALUES], false, true);
                             } else {
-                                $encoder->startTag($map[Horde_ActiveSync_Message_Base::KEY_VALUES]);
+                                $encoder->startTag($map[self::KEY_VALUES]);
                                 $encoder->content($element);
                                 $encoder->endTag();
                             }
@@ -281,23 +281,23 @@ class Horde_ActiveSync_Message_Base
                     $encoder->endTag();
                 } else {
                     /* Simple type */
-                    if (strlen($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]) == 0) {
+                    if (strlen($this->$map[self::KEY_ATTRIBUTE]) == 0) {
                           // Do not output empty items.
                           // See above: $encoder->startTag($tag, false, true);
                         continue;
                     } else {
                         $encoder->startTag($tag);
                     }
-                    if (isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE]) && ($map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE || $map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_DATE_DASHES)) {
-                        if (!empty($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE])) { // don't output 1-1-1970
-                          $encoder->content(self::_formatDate($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE], $map[Horde_ActiveSync_Message_Base::KEY_TYPE]));
+                    if (isset($map[self::KEY_TYPE]) && ($map[self::KEY_TYPE] == self::TYPE_DATE || $map[self::KEY_TYPE] == self::TYPE_DATE_DASHES)) {
+                        if (!empty($this->$map[self::KEY_ATTRIBUTE])) { // don't output 1-1-1970
+                          $encoder->content(self::_formatDate($this->$map[self::KEY_ATTRIBUTE], $map[self::KEY_TYPE]));
                         }
-                    } elseif (isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE]) && $map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_HEX) {
-                        $encoder->content(bin2hex($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]));
-                    } elseif (isset($map[Horde_ActiveSync_Message_Base::KEY_TYPE]) && $map[Horde_ActiveSync_Message_Base::KEY_TYPE] == Horde_ActiveSync_Message_Base::TYPE_MAPI_STREAM) {
-                        $encoder->content($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]);
+                    } elseif (isset($map[self::KEY_TYPE]) && $map[self::KEY_TYPE] == self::TYPE_HEX) {
+                        $encoder->content(bin2hex($this->$map[self::KEY_ATTRIBUTE]));
+                    } elseif (isset($map[self::KEY_TYPE]) && $map[self::KEY_TYPE] == self::TYPE_MAPI_STREAM) {
+                        $encoder->content($this->$map[self::KEY_ATTRIBUTE]);
                     } else {
-                        $encoder->content($this->$map[Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE]);
+                        $encoder->content($this->$map[self::KEY_ATTRIBUTE]);
                     }
                     $encoder->endTag();
                 }
index b4469a8..2179a91 100644 (file)
@@ -94,75 +94,75 @@ class Horde_ActiveSync_Message_Contact extends Horde_ActiveSync_Message_Base
     public function __construct($params = array())
     {
         $mapping = array (
-            self::ANNIVERSARY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE =>  'anniversary', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE_DASHES),
-            self::ASSISTANTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'assistantname'),
-            self::ASSISTNAMEPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'assistnamephonenumber'),
-            self::BIRTHDAY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'birthday', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE_DASHES),
-            self::BODY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'body'),
-            self::BODYSIZE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'bodysize'),
-            self::BODYTRUNCATED => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'bodytruncated'),
-            self::BUSINESS2PHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'business2phonenumber'),
-            self::BUSINESSCITY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businesscity'),
-            self::BUSINESSCOUNTRY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businesscountry'),
-            self::BUSINESSPOSTALCODE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businesspostalcode'),
-            self::BUSINESSSTATE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businessstate'),
-            self::BUSINESSSTREET => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businessstreet'),
-            self::BUSINESSFAXNUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businessfaxnumber'),
-            self::BUSINESSPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'businessphonenumber'),
-            self::CARPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'carphonenumber'),
-            self::CHILDREN => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'children', Horde_ActiveSync_Message_Base::KEY_VALUES => self::CHILD),
-            self::COMPANYNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'companyname'),
-            self::DEPARTMENT => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'department'),
-            self::EMAIL1ADDRESS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'email1address'),
-            self::EMAIL2ADDRESS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'email2address'),
-            self::EMAIL3ADDRESS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'email3address'),
-            self::FILEAS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'fileas'),
-            self::FIRSTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'firstname'),
-            self::HOME2PHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'home2phonenumber'),
-            self::HOMECITY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homecity'),
-            self::HOMECOUNTRY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homecountry'),
-            self::HOMEPOSTALCODE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homepostalcode'),
-            self::HOMESTATE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homestate'),
-            self::HOMESTREET => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homestreet'),
-            self::HOMEFAXNUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homefaxnumber'),
-            self::HOMEPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'homephonenumber'),
-            self::JOBTITLE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'jobtitle'),
-            self::LASTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'lastname'),
-            self::MIDDLENAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'middlename'),
-            self::MOBILEPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'mobilephonenumber'),
-            self::OFFICELOCATION => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'officelocation'),
-            self::OTHERCITY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'othercity'),
-            self::OTHERCOUNTRY => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'othercountry'),
-            self::OTHERPOSTALCODE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'otherpostalcode'),
-            self::OTHERSTATE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'otherstate'),
-            self::OTHERSTREET => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'otherstreet'),
-            self::PAGERNUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'pagernumber'),
-            self::RADIOPHONENUMBER => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'radiophonenumber'),
-            self::SPOUSE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'spouse'),
-            self::SUFFIX => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'suffix'),
-            self::TITLE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'title'),
-            self::WEBPAGE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'webpage'),
-            self::YOMICOMPANYNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'yomicompanyname'),
-            self::YOMIFIRSTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'yomifirstname'),
-            self::YOMILASTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'yomilastname'),
-            self::RTF => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'rtf'),
-            self::PICTURE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'picture'),
-            self::CATEGORIES => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'categories', Horde_ActiveSync_Message_Base::KEY_VALUES => self::CATEGORY),
+            self::ANNIVERSARY => array (self::KEY_ATTRIBUTE =>  'anniversary', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::ASSISTANTNAME => array (self::KEY_ATTRIBUTE => 'assistantname'),
+            self::ASSISTNAMEPHONENUMBER => array (self::KEY_ATTRIBUTE => 'assistnamephonenumber'),
+            self::BIRTHDAY => array (self::KEY_ATTRIBUTE => 'birthday', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::BODY => array (self::KEY_ATTRIBUTE => 'body'),
+            self::BODYSIZE => array (self::KEY_ATTRIBUTE => 'bodysize'),
+            self::BODYTRUNCATED => array (self::KEY_ATTRIBUTE => 'bodytruncated'),
+            self::BUSINESS2PHONENUMBER => array (self::KEY_ATTRIBUTE => 'business2phonenumber'),
+            self::BUSINESSCITY => array (self::KEY_ATTRIBUTE => 'businesscity'),
+            self::BUSINESSCOUNTRY => array (self::KEY_ATTRIBUTE => 'businesscountry'),
+            self::BUSINESSPOSTALCODE => array (self::KEY_ATTRIBUTE => 'businesspostalcode'),
+            self::BUSINESSSTATE => array (self::KEY_ATTRIBUTE => 'businessstate'),
+            self::BUSINESSSTREET => array (self::KEY_ATTRIBUTE => 'businessstreet'),
+            self::BUSINESSFAXNUMBER => array (self::KEY_ATTRIBUTE => 'businessfaxnumber'),
+            self::BUSINESSPHONENUMBER => array (self::KEY_ATTRIBUTE => 'businessphonenumber'),
+            self::CARPHONENUMBER => array (self::KEY_ATTRIBUTE => 'carphonenumber'),
+            self::CHILDREN => array (self::KEY_ATTRIBUTE => 'children', self::KEY_VALUES => self::CHILD),
+            self::COMPANYNAME => array (self::KEY_ATTRIBUTE => 'companyname'),
+            self::DEPARTMENT => array (self::KEY_ATTRIBUTE => 'department'),
+            self::EMAIL1ADDRESS => array (self::KEY_ATTRIBUTE => 'email1address'),
+            self::EMAIL2ADDRESS => array (self::KEY_ATTRIBUTE => 'email2address'),
+            self::EMAIL3ADDRESS => array (self::KEY_ATTRIBUTE => 'email3address'),
+            self::FILEAS => array (self::KEY_ATTRIBUTE => 'fileas'),
+            self::FIRSTNAME => array (self::KEY_ATTRIBUTE => 'firstname'),
+            self::HOME2PHONENUMBER => array (self::KEY_ATTRIBUTE => 'home2phonenumber'),
+            self::HOMECITY => array (self::KEY_ATTRIBUTE => 'homecity'),
+            self::HOMECOUNTRY => array (self::KEY_ATTRIBUTE => 'homecountry'),
+            self::HOMEPOSTALCODE => array (self::KEY_ATTRIBUTE => 'homepostalcode'),
+            self::HOMESTATE => array (self::KEY_ATTRIBUTE => 'homestate'),
+            self::HOMESTREET => array (self::KEY_ATTRIBUTE => 'homestreet'),
+            self::HOMEFAXNUMBER => array (self::KEY_ATTRIBUTE => 'homefaxnumber'),
+            self::HOMEPHONENUMBER => array (self::KEY_ATTRIBUTE => 'homephonenumber'),
+            self::JOBTITLE => array (self::KEY_ATTRIBUTE => 'jobtitle'),
+            self::LASTNAME => array (self::KEY_ATTRIBUTE => 'lastname'),
+            self::MIDDLENAME => array (self::KEY_ATTRIBUTE => 'middlename'),
+            self::MOBILEPHONENUMBER => array (self::KEY_ATTRIBUTE => 'mobilephonenumber'),
+            self::OFFICELOCATION => array (self::KEY_ATTRIBUTE => 'officelocation'),
+            self::OTHERCITY => array (self::KEY_ATTRIBUTE => 'othercity'),
+            self::OTHERCOUNTRY => array (self::KEY_ATTRIBUTE => 'othercountry'),
+            self::OTHERPOSTALCODE => array (self::KEY_ATTRIBUTE => 'otherpostalcode'),
+            self::OTHERSTATE => array (self::KEY_ATTRIBUTE => 'otherstate'),
+            self::OTHERSTREET => array (self::KEY_ATTRIBUTE => 'otherstreet'),
+            self::PAGERNUMBER => array (self::KEY_ATTRIBUTE => 'pagernumber'),
+            self::RADIOPHONENUMBER => array (self::KEY_ATTRIBUTE => 'radiophonenumber'),
+            self::SPOUSE => array (self::KEY_ATTRIBUTE => 'spouse'),
+            self::SUFFIX => array (self::KEY_ATTRIBUTE => 'suffix'),
+            self::TITLE => array (self::KEY_ATTRIBUTE => 'title'),
+            self::WEBPAGE => array (self::KEY_ATTRIBUTE => 'webpage'),
+            self::YOMICOMPANYNAME => array (self::KEY_ATTRIBUTE => 'yomicompanyname'),
+            self::YOMIFIRSTNAME => array (self::KEY_ATTRIBUTE => 'yomifirstname'),
+            self::YOMILASTNAME => array (self::KEY_ATTRIBUTE => 'yomilastname'),
+            self::RTF => array (self::KEY_ATTRIBUTE => 'rtf'),
+            self::PICTURE => array (self::KEY_ATTRIBUTE => 'picture'),
+            self::CATEGORIES => array (self::KEY_ATTRIBUTE => 'categories', self::KEY_VALUES => self::CATEGORY),
         );
 
         /* Additional mappings for AS versions >= 2.5 */
         if (isset($params['protocolversion']) && $params['protocolversion'] >= 2.5) {
             $mapping += array(
-                self::CUSTOMERID => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'customerid'),
-                self::GOVERNMENTID => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'governmentid'),
-                self::IMADDRESS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'imaddress'),
-                self::IMADDRESS2 => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'imaddress2'),
-                self::IMADDRESS3 => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'imaddress3'),
-                self::MANAGERNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'managername'),
-                self::COMPANYMAINPHONE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'companymainphone'),
-                self::ACCOUNTNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'accountname'),
-                self::NICKNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'nickname'),
-                self::MMS => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'mms'),
+                self::CUSTOMERID => array (self::KEY_ATTRIBUTE => 'customerid'),
+                self::GOVERNMENTID => array (self::KEY_ATTRIBUTE => 'governmentid'),
+                self::IMADDRESS => array (self::KEY_ATTRIBUTE => 'imaddress'),
+                self::IMADDRESS2 => array (self::KEY_ATTRIBUTE => 'imaddress2'),
+                self::IMADDRESS3 => array (self::KEY_ATTRIBUTE => 'imaddress3'),
+                self::MANAGERNAME => array (self::KEY_ATTRIBUTE => 'managername'),
+                self::COMPANYMAINPHONE => array (self::KEY_ATTRIBUTE => 'companymainphone'),
+                self::ACCOUNTNAME => array (self::KEY_ATTRIBUTE => 'accountname'),
+                self::NICKNAME => array (self::KEY_ATTRIBUTE => 'nickname'),
+                self::MMS => array (self::KEY_ATTRIBUTE => 'mms'),
             );
         }
 
index f227c82..afa72fa 100644 (file)
@@ -23,10 +23,10 @@ class Horde_ActiveSync_Message_Exception extends Horde_ActiveSync_Message_Appoin
 
         /* Some additional properties for Exceptions */
         $this->_mapping[Horde_ActiveSync_Message_Appointment::POOMCAL_EXCEPTIONSTARTTIME] = array(
-            Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'exceptionstarttime',
-            Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE);
+            self::KEY_ATTRIBUTE => 'exceptionstarttime',
+            self::KEY_TYPE => self::TYPE_DATE);
 
-        $this->_mapping[Horde_ActiveSync_Message_Appointment::POOMCAL_DELETED] = array(Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'deleted');
+        $this->_mapping[Horde_ActiveSync_Message_Appointment::POOMCAL_DELETED] = array(self::KEY_ATTRIBUTE => 'deleted');
     }
 
     /**
index 8463d3c..b147558 100644 (file)
@@ -18,10 +18,10 @@ class Horde_ActiveSync_Message_Folder extends Horde_ActiveSync_Message_Base
     public function __construct($params = array())
     {
         $mapping = array (
-            Horde_ActiveSync::FOLDERHIERARCHY_SERVERENTRYID => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'serverid'),
-            Horde_ActiveSync::FOLDERHIERARCHY_PARENTID => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'parentid'),
-            Horde_ActiveSync::FOLDERHIERARCHY_DISPLAYNAME => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'displayname'),
-            Horde_ActiveSync::FOLDERHIERARCHY_TYPE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'type')
+            Horde_ActiveSync::FOLDERHIERARCHY_SERVERENTRYID => array (self::KEY_ATTRIBUTE => 'serverid'),
+            Horde_ActiveSync::FOLDERHIERARCHY_PARENTID => array (self::KEY_ATTRIBUTE => 'parentid'),
+            Horde_ActiveSync::FOLDERHIERARCHY_DISPLAYNAME => array (self::KEY_ATTRIBUTE => 'displayname'),
+            Horde_ActiveSync::FOLDERHIERARCHY_TYPE => array (self::KEY_ATTRIBUTE => 'type')
         );
 
         parent::__construct($mapping, $params);
index 22fb234..40840cc 100644 (file)
@@ -21,14 +21,14 @@ class Horde_ActiveSync_Message_Recurrence extends Horde_ActiveSync_Message_Base
     function __construct($params = array())
     {
         $mapping = array (
-            Horde_ActiveSync_Message_Appointment::POOMCAL_TYPE => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'type'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_UNTIL => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'until', Horde_ActiveSync_Message_Base::KEY_TYPE => Horde_ActiveSync_Message_Base::TYPE_DATE),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_OCCURRENCES => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'occurrences'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_INTERVAL => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'interval'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_DAYOFWEEK => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'dayofweek'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_DAYOFMONTH => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'dayofmonth'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_WEEKOFMONTH => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'weekofmonth'),
-            Horde_ActiveSync_Message_Appointment::POOMCAL_MONTHOFYEAR => array (Horde_ActiveSync_Message_Base::KEY_ATTRIBUTE => 'monthofyear')
+            Horde_ActiveSync_Message_Appointment::POOMCAL_TYPE => array (self::KEY_ATTRIBUTE => 'type'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_UNTIL => array (self::KEY_ATTRIBUTE => 'until', self::KEY_TYPE => self::TYPE_DATE),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_OCCURRENCES => array (self::KEY_ATTRIBUTE => 'occurrences'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_INTERVAL => array (self::KEY_ATTRIBUTE => 'interval'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_DAYOFWEEK => array (self::KEY_ATTRIBUTE => 'dayofweek'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_DAYOFMONTH => array (self::KEY_ATTRIBUTE => 'dayofmonth'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_WEEKOFMONTH => array (self::KEY_ATTRIBUTE => 'weekofmonth'),
+            Horde_ActiveSync_Message_Appointment::POOMCAL_MONTHOFYEAR => array (self::KEY_ATTRIBUTE => 'monthofyear')
         );
 
         parent::__construct($mapping, $params);
diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Message/Task.php b/framework/ActiveSync/lib/Horde/ActiveSync/Message/Task.php
new file mode 100644 (file)
index 0000000..ee555ec
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Horde_ActiveSync_Message_Task class represents a single ActiveSync Task.
+ *
+ * @copyright 2010 The Horde Project (http://www.horde.org)
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Horde_ActiveSync
+ */
+class Horde_ActiveSync_Message_Task extends Horde_ActiveSync_Message_Base
+{
+    public $categories = array();
+
+    /* POOMTASKS */
+    const POOMTASKS_BODY = 'POOMTASKS:Body';
+    const POOMTASKS_BODYSIZE = 'POOMTASKS:BodySize';
+    const POOMTASKS_BODYTRUNCATED = 'POOMTASKS:BodyTruncated';
+    const POOMTASKS_CATEGORIES = 'POOMTASKS:Categories';
+    const POOMTASKS_CATEGORY = 'POOMTASKS:Category';
+    const POOMTASKS_COMPLETE = 'POOMTASKS:Complete';
+    const POOMTASKS_DATECOMPLETED = 'POOMTASKS:DateCompleted';
+    const POOMTASKS_DUEDATE = 'POOMTASKS:DueDate';
+    const POOMTASKS_UTCDUEDATE = 'POOMTASKS:UtcDueDate';
+    const POOMTASKS_IMPORTANCE = 'POOMTASKS:Importance';
+    const POOMTASKS_RECURRENCE = 'POOMTASKS:Recurrence';
+    const POOMTASKS_TYPE = 'POOMTASKS:Type';
+    const POOMTASKS_START = 'POOMTASKS:Start';
+    const POOMTASKS_UNTIL = 'POOMTASKS:Until';
+    const POOMTASKS_OCCURRENCES = 'POOMTASKS:Occurrences';
+    const POOMTASKS_INTERVAL = 'POOMTASKS:Interval';
+    const POOMTASKS_DAYOFWEEK = 'POOMTASKS:DayOfWeek';
+    const POOMTASKS_DAYOFMONTH = 'POOMTASKS:DayOfMonth';
+    const POOMTASKS_WEEKOFMONTH = 'POOMTASKS:WeekOfMonth';
+    const POOMTASKS_MONTHOFYEAR = 'POOMTASKS:MonthOfYear';
+    const POOMTASKS_REGENERATE = 'POOMTASKS:Regenerate';
+    const POOMTASKS_DEADOCCUR = 'POOMTASKS:DeadOccur';
+    const POOMTASKS_REMINDERSET = 'POOMTASKS:ReminderSet';
+    const POOMTASKS_REMINDERTIME = 'POOMTASKS:ReminderTime';
+    const POOMTASKS_SENSITIVITY = 'POOMTASKS:Sensitivity';
+    const POOMTASKS_STARTDATE = 'POOMTASKS:StartDate';
+    const POOMTASKS_UTCSTARTDATE = 'POOMTASKS:UtcStartDate';
+    const POOMTASKS_SUBJECT = 'POOMTASKS:Subject';
+    const POOMTASKS_RTF = 'POOMTASKS:Rtf';
+
+    /**
+     * Const'r
+     *
+     * @param array $params
+     */
+    function __construct($params = array()) {
+        $mapping = array (
+            self::POOMTASKS_BODY => array (self::KEY_ATTRIBUTE => 'body'),
+            self::POOMTASKS_COMPLETE => array (self::KEY_ATTRIBUTE => 'complete'),
+            self::POOMTASKS_DATECOMPLETED => array (self::KEY_ATTRIBUTE => 'datecompleted', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_DUEDATE => array (self::KEY_ATTRIBUTE => 'duedate', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_UTCDUEDATE => array (self::KEY_ATTRIBUTE => 'utcduedate', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_IMPORTANCE => array (self::KEY_ATTRIBUTE => 'importance'),
+            self::POOMTASKS_RECURRENCE => array (self::KEY_ATTRIBUTE => 'recurrence', self::KEY_TYPE => 'SyncTaskRecurrence'),
+            self::POOMTASKS_REGENERATE => array (self::KEY_ATTRIBUTE => 'regenerate'),
+            self::POOMTASKS_DEADOCCUR => array (self::KEY_ATTRIBUTE => 'deadoccur'),
+            self::POOMTASKS_REMINDERSET => array (self::KEY_ATTRIBUTE => 'reminderset'),
+            self::POOMTASKS_REMINDERTIME => array (self::KEY_ATTRIBUTE => 'remindertime', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_SENSITIVITY => array (self::KEY_ATTRIBUTE => 'sensitiviy'),
+            self::POOMTASKS_STARTDATE => array (self::KEY_ATTRIBUTE => 'startdate', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_UTCSTARTDATE => array (self::KEY_ATTRIBUTE => 'utcstartdate', self::KEY_TYPE => self::TYPE_DATE_DASHES),
+            self::POOMTASKS_SUBJECT => array (self::KEY_ATTRIBUTE => 'subject'),
+            self::POOMTASKS_RTF => array (self::KEY_ATTRIBUTE => 'rtf'),
+            self::POOMTASKS_CATEGORIES => array (self::KEY_ATTRIBUTE => 'categories', self::KEY_VALUES => self::POOMTASKS_CATEGORY),
+        );
+
+        parent::__construct($mapping, $params);
+    }
+    
+}
\ No newline at end of file
index 402bc38..00d734f 100644 (file)
@@ -57,6 +57,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
          <file name="Folder.php" role="php" />
          <file name="Recurrence.php" role="php" />
          <file name="Exception.php" role="php" />
+         <file name="Task.php" role="php" />
        </dir> <!-- /lib/Horde/ActiveSync/Message -->
        <dir name="Wbxml">
          <file name="Decoder.php" role="php" />
@@ -113,6 +114,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
    <install name="lib/Horde/ActiveSync/Message/Folder.php" as="Horde/ActiveSync/Message/Folder.php" />
    <install name="lib/Horde/ActiveSync/Message/Recurrence.php" as="Horde/ActiveSync/Message/Recurrence.php" />
    <install name="lib/Horde/ActiveSync/Message/Exception.php" as="Horde/ActiveSync/Message/Exception.php" />
+   <install name="lib/Horde/ActiveSync/Message/Task.php" as="Horde/ActiveSync/Message/Exception.php" />
    <install name="lib/Horde/ActiveSync/Wbxml/Decoder.php" as="Horde/ActiveSync/Wbxml/Decoder.php" />
    <install name="lib/Horde/ActiveSync/Wbxml/Encoder.php" as="Horde/ActiveSync/Wbxml/Encoder.php" />
    <install name="lib/Horde/ActiveSync/Request/Base.php" as="Horde/ActiveSync/Request/Base.php" />