]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@176 d1b88da0-ebda-0310-925b-ed51d...
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 11 Aug 2004 12:43:39 +0000 (12:43 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 11 Aug 2004 12:43:39 +0000 (12:43 +0000)
SOGo/SoObjects/SOGo/SOGoGroupFolder.m

index d1f49d219498cff196f09a48c18ce9d8748ab166..ca833a80f11d58475df85b113c6d0a4775b41fc1 100644 (file)
 
 /* name lookup */
 
+- (id)groupCalendar:(NSString *)_key inContext:(id)_ctx {
+  static Class calClass = Nil;
+  id calendar;
+  
+  if (calClass == Nil)
+    calClass = NSClassFromString(@"SOGoGroupAppointmentFolder");
+  if (calClass == Nil) {
+    [self logWithFormat:@"ERROR: missing SOGoGroupAppointmentFolder class!"];
+    return nil;
+  }
+  
+  calendar = [[calClass alloc] initWithName:_key inContainer:self];
+  
+  // TODO: should we pass over the uids in questions or should the
+  //       appointment folder query its container for that info?
+  
+  return [calendar autorelease];
+}
+
+- (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag {
+  id obj;
+  
+  /* first check attributes directly bound to the application */
+  if ((obj = [super lookupName:_key inContext:_ctx acquire:NO]))
+    return obj;
+  
+  if ([_key isEqualToString:@"Calendar"])
+    return [self groupCalendar:_key inContext:_ctx];
+  
+  /* return 404 to stop acquisition */
+  return [NSException exceptionWithHTTPStatus:404 /* Not Found */];
+}
+
 @end /* SOGoGroupFolder */