mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-26 13:55:23 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -141,7 +141,6 @@
|
||||
- (uint64_t) idForObjectWithKey: (NSString *) childKey;
|
||||
|
||||
/* subclasses */
|
||||
- (Class) messageClass;
|
||||
- (MAPIStoreMessage *) createMessage;
|
||||
- (MAPIStoreMessageTable *) messageTable;
|
||||
- (NSArray *) messageKeysMatchingQualifier: (EOQualifier *) qualifier
|
||||
|
||||
@@ -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__];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -86,6 +86,15 @@ static Class NSExceptionK, MAPIStoreSentItemsFolderK, MAPIStoreDraftsFolderK;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SOGoMailObject (MAPIStoreExtension)
|
||||
|
||||
- (Class) mapistoreMessageClass
|
||||
{
|
||||
return [MAPIStoreMailMessage class];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation MAPIStoreMailMessage
|
||||
|
||||
+ (void) initialize
|
||||
|
||||
@@ -26,18 +26,6 @@
|
||||
|
||||
#import "MAPIStoreNotesFolder.h"
|
||||
|
||||
static Class MAPIStoreNotesMessageK;
|
||||
|
||||
@implementation MAPIStoreNotesFolder
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
MAPIStoreNotesMessageK = [MAPIStoreNotesMessage class];
|
||||
}
|
||||
|
||||
- (Class) messageClass
|
||||
{
|
||||
return MAPIStoreNotesMessageK;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -52,4 +52,10 @@ struct MAPIStoreTallocWrapper
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (MAPIStoreExtension)
|
||||
|
||||
- (Class) mapistoreMessageClass;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* NSOBJECT_MAPISTORE_H */
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user