Monotone-Parent: e1689f21ae9391a98de28b07ee195a3a85688a85

Monotone-Revision: 187ef5414dadc22f5e049aad96bb6207fee6d226

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-09-23T15:36:49
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2011-09-23 15:36:49 +00:00
parent 707ae22ad8
commit ec0207c505
16 changed files with 90 additions and 95 deletions
+14
View File
@@ -1,3 +1,17 @@
2011-09-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/SOGoMAPIFSMessage.m (-mapistoreMessageClass): method
implemented poorly (but work for now) and that differentiates
between the MAPIStoreMessage classes based on certain elements in
their folder path.
* OpenChange/MAPIStoreFolder.m (-messageClass): removed method,
replaced with the new mechanism below.
* OpenChange/NSObject+MAPIStore.h (-mapistoreMessageClass): new
category method that returns the proper MAPIStoreMessage wrapper
class from instances of SOGoObject and children classes.
2011-09-22 Ludovic Marcotte <lmarcotte@inverse.ca>
* OpenChange/MAPIStoreContactsMessage.m
-12
View File
@@ -36,15 +36,8 @@
#import "MAPIStoreCalendarFolder.h"
static Class MAPIStoreCalendarMessageK;
@implementation MAPIStoreCalendarFolder
+ (void) initialize
{
MAPIStoreCalendarMessageK = [MAPIStoreCalendarMessage class];
}
- (id) initWithURL: (NSURL *) newURL
inContext: (MAPIStoreContext *) newContext
{
@@ -76,11 +69,6 @@ static Class MAPIStoreCalendarMessageK;
return self;
}
- (Class) messageClass
{
return MAPIStoreCalendarMessageK;
}
- (MAPIStoreMessageTable *) messageTable
{
[self synchroniseCache];
+9
View File
@@ -68,6 +68,15 @@
// extern void ndr_print_AppointmentRecurrencePattern(struct ndr_print *ndr, const char *name, const struct AppointmentRecurrencePattern *r);
@implementation SOGoAppointmentObject (MAPIStoreExtension)
- (Class) mapistoreMessageClass
{
return [MAPIStoreCalendarMessage class];
}
@end
@implementation MAPIStoreCalendarMessage
- (id) init
-17
View File
@@ -33,20 +33,8 @@
#import "MAPIStoreContactsFolder.h"
static Class MAPIStoreContactsMessageK;
@implementation MAPIStoreContactsFolder
+ (void) initialize
{
MAPIStoreContactsMessageK = [MAPIStoreContactsMessage class];
}
- (void) dealloc
{
[super dealloc];
}
- (id) initWithURL: (NSURL *) newURL
inContext: (MAPIStoreContext *) newContext
{
@@ -78,11 +66,6 @@ static Class MAPIStoreContactsMessageK;
return self;
}
- (Class) messageClass
{
return MAPIStoreContactsMessageK;
}
- (MAPIStoreMessageTable *) messageTable
{
[self synchroniseCache];
+9
View File
@@ -49,6 +49,15 @@
#include <mapistore/mapistore_errors.h>
#include <mapistore/mapistore_nameid.h>
@implementation SOGoContactGCSEntry (MAPIStoreExtension)
- (Class) mapistoreMessageClass
{
return [MAPIStoreContactsMessage class];
}
@end
@implementation MAPIStoreContactsMessage
// TODO: this should be combined with the version found
+9
View File
@@ -48,6 +48,15 @@ typedef void (*getMessageData_inMemCtx_) (MAPIStoreMessage *, SEL,
struct mapistore_message **,
TALLOC_CTX *);
@implementation SOGoDraftObject (MAPIStoreExtension)
- (Class) mapistoreMessageClass
{
return [MAPIStoreDraftsMessage class];
}
@end
@implementation MAPIStoreDraftsMessage
+ (void) initialize
+1 -7
View File
@@ -43,14 +43,13 @@
// #include <libmapiproxy.h>
// #include <param.h>
static Class EOKeyValueQualifierK, MAPIStoreFSMessageK;
static Class EOKeyValueQualifierK;
@implementation MAPIStoreFSFolder
+ (void) initialize
{
EOKeyValueQualifierK = [EOKeyValueQualifier class];
MAPIStoreFSMessageK = [MAPIStoreFSMessage class];
}
- (id) initWithURL: (NSURL *) newURL
@@ -72,11 +71,6 @@ static Class EOKeyValueQualifierK, MAPIStoreFSMessageK;
return [MAPIStoreFSMessageTable tableForContainer: self];
}
- (Class) messageClass
{
return MAPIStoreFSMessageK;
}
- (MAPIStoreFolderTable *) folderTable
{
return [MAPIStoreFSFolderTable tableForContainer: self];
-1
View File
@@ -141,7 +141,6 @@
- (uint64_t) idForObjectWithKey: (NSString *) childKey;
/* subclasses */
- (Class) messageClass;
- (MAPIStoreMessage *) createMessage;
- (MAPIStoreMessageTable *) messageTable;
- (NSArray *) messageKeysMatchingQualifier: (EOQualifier *) qualifier
+4 -9
View File
@@ -222,6 +222,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
- (id) lookupMessage: (NSString *) messageKey
{
MAPIStoreObject *childMessage = nil;
Class messageClass;
SOGoObject *msgObject;
if (messageKey)
@@ -232,9 +233,10 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
if (msgObject && ![msgObject isKindOfClass: NSExceptionK])
{
[msgObject setContext: [[self context] woContext]];
messageClass = [msgObject mapistoreMessageClass];
childMessage
= [[self messageClass] mapiStoreObjectWithSOGoObject: msgObject
inContainer: self];
= [messageClass mapiStoreObjectWithSOGoObject: msgObject
inContainer: self];
}
}
@@ -1273,13 +1275,6 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
return nil;
}
- (Class) messageClass
{
[self subclassResponsibility: _cmd];
return Nil;
}
- (MAPIStoreMessage *) createMessage
{
[self logWithFormat: @"ignored method: %s", __PRETTY_FUNCTION__];
-24
View File
@@ -49,7 +49,6 @@
#import "MAPIStoreContext.h"
#import "MAPIStoreDraftsMessage.h"
#import "MAPIStoreFAIMessage.h"
#import "MAPIStoreMailMessage.h"
#import "MAPIStoreMailMessageTable.h"
#import "MAPIStoreMapping.h"
#import "MAPIStoreTypes.h"
@@ -64,8 +63,6 @@
#import "MAPIStoreMailFolder.h"
static Class MAPIStoreDraftsMessageK;
static Class MAPIStoreMailMessageK;
static Class SOGoMailFolderK;
#undef DEBUG
@@ -77,7 +74,6 @@ static Class SOGoMailFolderK;
+ (void) initialize
{
MAPIStoreMailMessageK = [MAPIStoreMailMessage class];
SOGoMailFolderK = [SOGoMailFolder class];
[MAPIStoreAppointmentWrapper class];
}
@@ -171,11 +167,6 @@ static Class SOGoMailFolderK;
return [MAPIStoreMailMessageTable tableForContainer: self];
}
- (Class) messageClass
{
return MAPIStoreMailMessageK;
}
- (NSString *) createFolder: (struct SRow *) aRow
withFID: (uint64_t) newFID
inContainer: (id) subfolderParent
@@ -1125,11 +1116,6 @@ _parseCOPYUID (NSString *line, NSArray **destUIDsP)
return [accountFolder draftsFolderInContext: woContext];
}
- (Class) messageClass
{
return MAPIStoreDraftsMessageK;
}
- (MAPIStoreMessage *) createMessage
{
MAPIStoreDraftsMessage *newMessage;
@@ -1161,22 +1147,12 @@ _parseCOPYUID (NSString *line, NSArray **destUIDsP)
//
@implementation MAPIStoreOutboxFolder : MAPIStoreMailFolder
+ (void) initialize
{
MAPIStoreDraftsMessageK = [MAPIStoreDraftsMessage class];
}
- (SOGoMailFolder *) specialFolderFromAccount: (SOGoMailAccount *) accountFolder
inContext: (WOContext *) woContext
{
return [accountFolder draftsFolderInContext: woContext];
}
- (Class) messageClass
{
return MAPIStoreDraftsMessageK;
}
- (MAPIStoreMessage *) createMessage
{
MAPIStoreDraftsMessage *newMessage;
+9
View File
@@ -86,6 +86,15 @@ static Class NSExceptionK, MAPIStoreSentItemsFolderK, MAPIStoreDraftsFolderK;
@end
@implementation SOGoMailObject (MAPIStoreExtension)
- (Class) mapistoreMessageClass
{
return [MAPIStoreMailMessage class];
}
@end
@implementation MAPIStoreMailMessage
+ (void) initialize
-12
View File
@@ -26,18 +26,6 @@
#import "MAPIStoreNotesFolder.h"
static Class MAPIStoreNotesMessageK;
@implementation MAPIStoreNotesFolder
+ (void) initialize
{
MAPIStoreNotesMessageK = [MAPIStoreNotesMessage class];
}
- (Class) messageClass
{
return MAPIStoreNotesMessageK;
}
@end
-12
View File
@@ -36,15 +36,8 @@
#import "MAPIStoreTasksFolder.h"
static Class MAPIStoreTasksMessageK;
@implementation MAPIStoreTasksFolder
+ (void) initialize
{
MAPIStoreTasksMessageK = [MAPIStoreTasksMessage class];
}
- (id) initWithURL: (NSURL *) newURL
inContext: (MAPIStoreContext *) newContext
{
@@ -76,11 +69,6 @@ static Class MAPIStoreTasksMessageK;
return self;
}
- (Class) messageClass
{
return MAPIStoreTasksMessageK;
}
- (MAPIStoreMessageTable *) messageTable
{
[self synchroniseCache];
+10 -1
View File
@@ -33,7 +33,7 @@
#import <NGCards/iCalPerson.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import <Appointments/SOGoAppointmentObject.h>
#import <Appointments/SOGoTaskObject.h>
#import "MAPIStoreTasksFolder.h"
#import "MAPIStoreTypes.h"
@@ -50,6 +50,15 @@
#include <mapistore/mapistore_errors.h>
#include <mapistore/mapistore_nameid.h>
@implementation SOGoTaskObject (MAPIStoreExtension)
- (Class) mapistoreMessageClass
{
return [MAPIStoreTasksMessage class];
}
@end
@implementation MAPIStoreTasksMessage
- (int) getPrIconIndex: (void **) data // TODO
+6
View File
@@ -52,4 +52,10 @@ struct MAPIStoreTallocWrapper
@end
@interface NSObject (MAPIStoreExtension)
- (Class) mapistoreMessageClass;
@end
#endif /* NSOBJECT_MAPISTORE_H */
+19
View File
@@ -54,6 +54,25 @@
[super dealloc];
}
- (Class) mapistoreMessageClass
{
NSArray *dirMembers;
NSString *className;
/* FIXME: this method is a bit dirty */
dirMembers = [[container directory] componentsSeparatedByString: @"/"];
if ([dirMembers containsObject: @"fai"]) /* should not occur as FAI message
are instantiated directly in
MAPIStoreFolder */
className = @"MAPIStoreFAIMessage";
else if ([dirMembers containsObject: @"notes"])
className = @"MAPIStoreNotesMessage";
else
className = @"MAPIStoreFSMessage";
return NSClassFromString (className);
}
- (NSString *) completeFilename
{
if (!completeFilename)