mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-06-10 04:49:46 +00:00
Monotone-Parent: e160c8da7c5049a7b1bbca545d886045ba8a2f14
Monotone-Revision: b1f1b1e8d2d0e0165cffef74b543546db1110544 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-08-11T22:56:04 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -26,10 +26,11 @@
|
||||
#import <Foundation/NSString.h>
|
||||
#import <Foundation/NSURL.h>
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
|
||||
#import <EOControl/EOQualifier.h>
|
||||
#import "EOQualifier+MAPIFS.h"
|
||||
#import "MAPIStoreFSFolderTable.h"
|
||||
#import "MAPIStoreFSMessage.h"
|
||||
#import "MAPIStoreFSMessageTable.h"
|
||||
#import "MAPIStoreFolderTable.h"
|
||||
#import "MAPIStoreTypes.h"
|
||||
#import "SOGoMAPIFSFolder.h"
|
||||
#import "SOGoMAPIFSMessage.h"
|
||||
@@ -42,12 +43,13 @@
|
||||
// #include <libmapiproxy.h>
|
||||
// #include <param.h>
|
||||
|
||||
static Class MAPIStoreFSMessageK;
|
||||
static Class EOKeyValueQualifierK, MAPIStoreFSMessageK;
|
||||
|
||||
@implementation MAPIStoreFSFolder
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
EOKeyValueQualifierK = [EOKeyValueQualifier class];
|
||||
MAPIStoreFSMessageK = [MAPIStoreFSMessage class];
|
||||
}
|
||||
|
||||
@@ -75,6 +77,11 @@ static Class MAPIStoreFSMessageK;
|
||||
return MAPIStoreFSMessageK;
|
||||
}
|
||||
|
||||
- (MAPIStoreFolderTable *) folderTable
|
||||
{
|
||||
return [MAPIStoreFSFolderTable tableForContainer: self];
|
||||
}
|
||||
|
||||
- (NSString *) createFolder: (struct SRow *) aRow
|
||||
withFID: (uint64_t) newFID
|
||||
{
|
||||
@@ -117,6 +124,37 @@ static Class MAPIStoreFSMessageK;
|
||||
andSortOrderings: sortOrderings];
|
||||
}
|
||||
|
||||
- (NSArray *) folderKeysMatchingQualifier: (EOQualifier *) qualifier
|
||||
andSortOrderings: (NSArray *) sortOrderings
|
||||
{
|
||||
NSArray *entries;
|
||||
NSMutableArray *filteredEntries;
|
||||
NSUInteger count, max;
|
||||
MAPIStoreFSFolder *subfolder;
|
||||
SOGoMAPIFSMessage *propertiesMessage;
|
||||
NSString *subfolderKey;
|
||||
|
||||
entries = [(SOGoMAPIFSFolder *) sogoObject toManyRelationshipKeys];
|
||||
if (qualifier)
|
||||
{
|
||||
max = [entries count];
|
||||
filteredEntries = [NSMutableArray arrayWithCapacity: max];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
subfolderKey = [entries objectAtIndex: count];
|
||||
subfolder = [self lookupFolder: subfolderKey];
|
||||
propertiesMessage = [subfolder propertiesMessage];
|
||||
if ([qualifier evaluateMAPIFSMessage: propertiesMessage])
|
||||
[filteredEntries addObject: subfolderKey];
|
||||
}
|
||||
entries = filteredEntries;
|
||||
}
|
||||
if (sortOrderings)
|
||||
[self errorWithFormat: @"sort orderings are not used for folders"];
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
||||
- (id) lookupFolder: (NSString *) childKey
|
||||
{
|
||||
id childObject = nil;
|
||||
|
||||
Reference in New Issue
Block a user