]> err.no Git - sope/commitdiff
added some convenience methods
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 13 Jul 2005 12:29:35 +0000 (12:29 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 13 Jul 2005 12:29:35 +0000 (12:29 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@894 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-ical/NGiCal/ChangeLog
sope-ical/NGiCal/NGVCard.h
sope-ical/NGiCal/NGVCard.m
sope-ical/NGiCal/NGVCardOrg.h
sope-ical/NGiCal/NGVCardOrg.m

index 4c0c9e00233fb1567ac44b76d4f1675e921f6f17..0a896ae38c2f4a13d8a166b67a2ec53f6f6e023f 100644 (file)
@@ -1,3 +1,12 @@
+2005-07-13  Helge Hess  <helge.hess@opengroupware.org>
+
+       * v4.5.48
+
+       * NGVCard.m: added some convenience methods to access the preferred
+         email, tel and adr
+
+       * NGVCardOrg.m: added a convenience method to access the first orgunit
+
 2005-07-05  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * NSCalendarDate+ICal.m: fixed 'gmtcalfmt' which removed seconds from
index 82e689e1dbfd2b518d3efb5d880e7bb9595be607..3f66ff0715b5fcb73c7ef9b9ccd06d7010592eb9 100644 (file)
@@ -56,7 +56,8 @@
 */
 
 @class NSString, NSArray, NSDictionary;
-@class NGVCardStrArrayValue, NGVCardOrg, NGVCardName;
+@class NGVCardStrArrayValue, NGVCardOrg, NGVCardName, NGVCardSimpleValue;
+@class NGVCardPhone, NGVCardAddress;
 
 @interface NGVCard : NSObject
 {
 - (void)setX:(NSDictionary *)_dict;
 - (NSDictionary *)x;
 
+/* convenience */
+
+- (NGVCardSimpleValue *)preferredEMail;
+- (NGVCardPhone *)preferredTel;
+- (NGVCardAddress *)preferredAdr;
+
 @end
 
 #endif /* __NGiCal_NGVCard_H__ */
index 783918cf8efc2ee965b16f8a414f8ae4b86e6d86..04849d1c0c713bcf52e8006055dd62d3ebce1f46 100644 (file)
@@ -281,6 +281,35 @@ static NGVCardSaxHandler         *sax   = nil; // THREAD
   return self->x;
 }
 
+/* convenience */
+
+- (id)preferredValueInArray:(NSArray *)_values {
+  unsigned i, count;
+  
+  if ((count = [_values count]) == 0)
+    return nil;
+  if (count == 1)
+    return [_values objectAtIndex:0];
+  
+  /* scan for preferred value */
+  for (i = 0; i < count; i++) {
+#warning COMPLETE ME
+  }
+  
+  /* just take first in sequence */
+  return [_values objectAtIndex:0];
+}
+
+- (NGVCardSimpleValue *)preferredEMail {
+  return [self preferredValueInArray:self->email];
+}
+- (NGVCardPhone *)preferredTel {
+  return [self preferredValueInArray:self->tel];
+}
+- (NGVCardAddress *)preferredAdr {
+  return [self preferredValueInArray:self->adr];
+}
+
 /* description */
 
 - (void)appendAttributesToDescription:(NSMutableString *)_ms {
index 0dbdfcf5f8b602d9574234e09e6b9e49836e1fe4..0f476f472e321f4b2431bddde94ca96881578d13 100644 (file)
 - (NSString *)orgnam;
 - (NSArray *)orgunits;
 
+/* convenience */
+
+- (NSString *)orgunit; /* returns the first orgunit when available */
+
 /* values */
 
 - (NSDictionary *)asDictionary;
index fb06c9e843e2a7e2107005c39801e1259b03f319..4acb83e1e747a1b4471540a1d239db8a00bda7c2 100644 (file)
   return self->orgunits;
 }
 
+- (NSString *)orgunit {
+  return [self->orgunits count] > 0 ? [self->orgunits objectAtIndex:0] : nil;
+}
+
 /* fake being an array */
 
 - (id)objectAtIndex:(unsigned)_idx {