Monotone-Parent: 3f1af1b61e725eb56f00438f4516a03bcff73a5a

Monotone-Revision: 6424c6fb13571b9e78000f91abc6a13bf395c042

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-06-29T21:58:23
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-06-29 21:58:23 +00:00
parent 8f2db63977
commit 643bc447ad
2 changed files with 44 additions and 18 deletions

View File

@@ -1,5 +1,11 @@
2007-06-29 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -ocsFolder]): new
method that create the folder if considered mandatory.
([SOGoFolder -folderIsMandatory]): new method that determines
whether the folder should be created automatically or not. To be
overriden by subclasses.
* Main/SOGo.m ([SOGo -run]): override method and create the
missing system tables if needed.

View File

@@ -130,7 +130,7 @@ static NSString *defaultUserID = @"<default>";
if (!folderManager)
{
folderManager = [GCSFolderManager defaultFolderManager];
[folderManager setFolderNamePrefix: @"SOGo_"];
[folderManager setFolderNamePrefix: @"SOGo"];
}
return folderManager;
@@ -138,7 +138,14 @@ static NSString *defaultUserID = @"<default>";
- (GCSFolder *) ocsFolderForPath: (NSString *) _path
{
return [[self folderManager] folderAtPath:_path];
return [[self folderManager] folderAtPath: _path];
}
- (BOOL) folderIsMandatory
{
[self subclassResponsibility: _cmd];
return NO;
}
- (GCSFolder *) ocsFolder
@@ -146,7 +153,14 @@ static NSString *defaultUserID = @"<default>";
GCSFolder *folder;
if (!ocsFolder)
ocsFolder = [[self ocsFolderForPath:[self ocsPath]] retain];
{
ocsFolder = [self ocsFolderForPath: [self ocsPath]];
if (!ocsFolder
&& [self folderIsMandatory]
&& [self create])
ocsFolder = [self ocsFolderForPath: [self ocsPath]];
[ocsFolder retain];
}
if ([ocsFolder isNotNull])
folder = ocsFolder;
@@ -176,18 +190,20 @@ static NSString *defaultUserID = @"<default>";
return [[self folderManager] deleteFolderAtPath: ocsPath];
}
- (NSArray *)fetchContentObjectNames {
- (NSArray *) fetchContentObjectNames
{
NSArray *fields, *records;
fields = [NSArray arrayWithObject:@"c_name"];
fields = [NSArray arrayWithObject: @"c_name"];
records = [[self ocsFolder] fetchFields:fields matchingQualifier:nil];
if (![records isNotNull]) {
[self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if ([records isKindOfClass:[NSException class]])
if (![records isNotNull])
{
[self errorWithFormat: @"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if ([records isKindOfClass: [NSException class]])
return records;
return [records valueForKey:@"c_name"];
return [records valueForKey: @"c_name"];
}
- (BOOL) nameExistsInFolder: (NSString *) objectName
@@ -207,14 +223,16 @@ static NSString *defaultUserID = @"<default>";
&& [records count] > 0);
}
- (NSDictionary *)fetchContentStringsAndNamesOfAllObjects {
- (NSDictionary *) fetchContentStringsAndNamesOfAllObjects
{
NSDictionary *files;
files = [[self ocsFolder] fetchContentsOfAllFiles];
if (![files isNotNull]) {
[self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if (![files isNotNull])
{
[self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if ([files isKindOfClass:[NSException class]])
return files;
return files;
@@ -222,7 +240,8 @@ static NSString *defaultUserID = @"<default>";
/* reflection */
- (NSString *)defaultFilenameExtension {
- (NSString *) defaultFilenameExtension
{
/*
Override to add an extension to a filename
@@ -252,7 +271,8 @@ static NSString *defaultUserID = @"<default>";
return @"httpd/unix-directory";
}
- (NSArray *) toOneRelationshipKeys {
- (NSArray *) toOneRelationshipKeys
{
/* toOneRelationshipKeys are the 'files' contained in a folder */
NSMutableArray *ma;
NSArray *names;