From c62f3b2634a2613d374dc87591114dd2f5399b7a Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 19 Aug 2010 15:51:25 +0000 Subject: [PATCH] Monotone-Parent: 3f6384d2d667032c851f2ee92c9eb1305dd8e483 Monotone-Revision: 68a5a1ab4807ea7e9d97fe4cabcbd3910bd62260 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-08-19T15:51:25 Monotone-Branch: ca.inverse.sogo --- SOPE/GDLContentStore/ChangeLog | 10 +++ SOPE/GDLContentStore/GCSFolderManager.h | 5 +- SOPE/GDLContentStore/GCSFolderManager.m | 13 ++- SOPE/GDLContentStore/GCSSpecialQueries.h | 3 + SOPE/GDLContentStore/GCSSpecialQueries.m | 110 +++++++++++++++++++++++ SOPE/GDLContentStore/GNUmakefile | 2 + 6 files changed, 139 insertions(+), 4 deletions(-) diff --git a/SOPE/GDLContentStore/ChangeLog b/SOPE/GDLContentStore/ChangeLog index 0a4690994..3fc7b7117 100644 --- a/SOPE/GDLContentStore/ChangeLog +++ b/SOPE/GDLContentStore/ChangeLog @@ -1,5 +1,15 @@ 2010-08-19 Wolfgang Sourdeau + * GCSSpecialQueries.m (-createEMailAlarmsFolderWithName:): new sql + helper methods + (emailAlarmsAttributeTypes:): new helper method that returns the + types pertaining to the adaptor. + + * GCSFolderManager.m (-alarmsFolder): new helper method. + + * GCSAlarmsFolder.[hm]: new class module for handling alarm + references. + * GCSFolder.m (-_channelManager): made method private. (-folderManager): removed method. diff --git a/SOPE/GDLContentStore/GCSFolderManager.h b/SOPE/GDLContentStore/GCSFolderManager.h index 27aa09acc..6e395b5f0 100644 --- a/SOPE/GDLContentStore/GCSFolderManager.h +++ b/SOPE/GDLContentStore/GCSFolderManager.h @@ -32,7 +32,7 @@ */ @class NSString, NSArray, NSURL, NSDictionary, NSException; -@class GCSChannelManager, GCSFolder, GCSFolderType; +@class GCSChannelManager, GCSAlarmsFolder, GCSFolder, GCSFolderType; @interface GCSFolderManager : NSObject { @@ -70,6 +70,9 @@ - (NSException *)createFolderOfType:(NSString *)_type withName:(NSString *)_name atPath:(NSString *)_path; - (NSException *)deleteFolderAtPath:(NSString *)_path; +/* alarms */ +- (GCSAlarmsFolder *)alarmsFolder; + /* folder types */ - (GCSFolderType *)folderTypeWithName:(NSString *)_name; diff --git a/SOPE/GDLContentStore/GCSFolderManager.m b/SOPE/GDLContentStore/GCSFolderManager.m index 34e3f2ca5..45ccce026 100644 --- a/SOPE/GDLContentStore/GCSFolderManager.m +++ b/SOPE/GDLContentStore/GCSFolderManager.m @@ -37,13 +37,15 @@ #import #import -#import "GCSFolderManager.h" #import "GCSChannelManager.h" -#import "GCSFolderType.h" +#import "EOAdaptorChannel+GCS.h" +#import "GCSAlarmsFolder.h" #import "GCSFolder.h" +#import "GCSFolderType.h" #import "GCSSpecialQueries.h" #import "NSURL+GCS.h" -#import "EOAdaptorChannel+GCS.h" + +#import "GCSFolderManager.h" /* Required database schema: @@ -323,6 +325,11 @@ static NSCharacterSet *asciiAlphaNumericCS = nil; return [folder autorelease]; } +- (GCSAlarmsFolder *) alarmsFolder +{ + return [GCSAlarmsFolder alarmsFolderWithFolderManager: self]; +} + /* path SQL */ - (NSString *)generateSQLWhereForInternalNames:(NSArray *)_names diff --git a/SOPE/GDLContentStore/GCSSpecialQueries.h b/SOPE/GDLContentStore/GCSSpecialQueries.h index 48674e02b..af406a844 100644 --- a/SOPE/GDLContentStore/GCSSpecialQueries.h +++ b/SOPE/GDLContentStore/GCSSpecialQueries.h @@ -31,6 +31,9 @@ @interface GCSSpecialQueries : NSObject +- (NSString *) createEMailAlarmsFolderWithName: (NSString *) tableName; +- (NSDictionary *) emailAlarmsAttributeTypes; + - (NSString *) createFolderTableWithName: (NSString *) tableName; - (NSString *) createFolderACLTableWithName: (NSString *) tableName; diff --git a/SOPE/GDLContentStore/GCSSpecialQueries.m b/SOPE/GDLContentStore/GCSSpecialQueries.m index 24092ebc2..4effe6602 100644 --- a/SOPE/GDLContentStore/GCSSpecialQueries.m +++ b/SOPE/GDLContentStore/GCSSpecialQueries.m @@ -77,6 +77,20 @@ @implementation GCSSpecialQueries +- (NSString *) createEMailAlarmsFolderWithName: (NSString *) tableName +{ + [self subclassResponsibility: _cmd]; + + return nil; +} + +- (NSDictionary *) emailAlarmsAttributeTypes +{ + [self subclassResponsibility: _cmd]; + + return nil; +} + - (NSString *) createFolderTableWithName: (NSString *) tableName { [self subclassResponsibility: _cmd]; @@ -95,6 +109,38 @@ @implementation GCSPostgreSQLSpecialQueries +- (NSString *) createEMailAlarmsFolderWithName: (NSString *) tableName +{ + static NSString *sqlFolderFormat + = (@"CREATE TABLE %@ (" + @" c_path VARCHAR(255) NOT NULL," + @" c_name VARCHAR(255) NOT NULL," + @" c_uid VARCHAR(255) NOT NULL," + @" c_recurrence_id INT NULL," + @" c_alarm_number INT NOT NULL," + @" c_alarm_date INT NOT NULL)"); + + return [NSString stringWithFormat: sqlFolderFormat, tableName]; +} + +- (NSDictionary *) emailAlarmsAttributeTypes +{ + static NSMutableDictionary *types = nil; + + if (!types) + { + types = [NSMutableDictionary new]; + [types setObject: @"varchar" forKey: @"c_path"]; + [types setObject: @"varchar" forKey: @"c_name"]; + [types setObject: @"varchar" forKey: @"c_uid"]; + [types setObject: @"int" forKey: @"c_recurrence_id"]; + [types setObject: @"int" forKey: @"c_alarm_number"]; + [types setObject: @"int" forKey: @"c_alarm_date"]; + } + + return types; +} + - (NSString *) createFolderTableWithName: (NSString *) tableName { static NSString *sqlFolderFormat @@ -126,6 +172,38 @@ @implementation GCSMySQLSpecialQueries +- (NSString *) createEMailAlarmsFolderWithName: (NSString *) tableName +{ + static NSString *sqlFolderFormat + = (@"CREATE TABLE %@ (" + @" c_path VARCHAR(255) NOT NULL," + @" c_name VARCHAR(255) NOT NULL," + @" c_uid VARCHAR(255) NOT NULL," + @" c_recurrence_id INT NULL," + @" c_alarm_number INT NOT NULL," + @" c_alarm_date INT NOT NULL)"); + + return [NSString stringWithFormat: sqlFolderFormat, tableName]; +} + +- (NSDictionary *) emailAlarmsAttributeTypes +{ + static NSMutableDictionary *types = nil; + + if (!types) + { + types = [NSMutableDictionary new]; + [types setObject: @"varchar" forKey: @"c_path"]; + [types setObject: @"varchar" forKey: @"c_name"]; + [types setObject: @"varchar" forKey: @"c_uid"]; + [types setObject: @"int" forKey: @"c_recurrence_id"]; + [types setObject: @"int" forKey: @"c_alarm_number"]; + [types setObject: @"int" forKey: @"c_alarm_date"]; + } + + return types; +} + - (NSString *) createFolderTableWithName: (NSString *) tableName { static NSString *sqlFolderFormat @@ -157,6 +235,38 @@ @implementation GCSOracleSpecialQueries +- (NSString *) createEMailAlarmsFolderWithName: (NSString *) tableName +{ + static NSString *sqlFolderFormat + = (@"CREATE TABLE %@ (" + @" c_path VARCHAR2(255) NOT NULL," + @" c_name VARCHAR2(255) NOT NULL," + @" c_uid VARCHAR2(255) NOT NULL," + @" c_recurrence_id INTEGER NULL," + @" c_alarm_number INTEGER NOT NULL," + @" c_alarm_date INTEGER NOT NULL)"); + + return [NSString stringWithFormat: sqlFolderFormat, tableName]; +} + +- (NSDictionary *) emailAlarmsAttributeTypes +{ + static NSMutableDictionary *types = nil; + + if (!types) + { + types = [NSMutableDictionary new]; + [types setObject: @"varchar2" forKey: @"c_path"]; + [types setObject: @"varchar2" forKey: @"c_name"]; + [types setObject: @"varchar2" forKey: @"c_uid"]; + [types setObject: @"integer" forKey: @"c_recurrence_id"]; + [types setObject: @"integer" forKey: @"c_alarm_number"]; + [types setObject: @"integer" forKey: @"c_alarm_date"]; + } + + return types; +} + - (NSString *) createFolderTableWithName: (NSString *) tableName { static NSString *sqlFolderFormat diff --git a/SOPE/GDLContentStore/GNUmakefile b/SOPE/GDLContentStore/GNUmakefile index 7963a46d2..bb50fc57b 100644 --- a/SOPE/GDLContentStore/GNUmakefile +++ b/SOPE/GDLContentStore/GNUmakefile @@ -24,6 +24,7 @@ libGDLContentStore_HEADER_FILES += \ NSURL+GCS.h \ EOAdaptorChannel+GCS.h \ \ + GCSAlarmsFolder.h \ GCSContext.h \ GCSFieldInfo.h \ GCSFolder.h \ @@ -39,6 +40,7 @@ libGDLContentStore_OBJC_FILES += \ EOAdaptorChannel+GCS.m \ EOQualifier+GCS.m \ \ + GCSAlarmsFolder.m \ GCSContext.m \ GCSFieldInfo.m \ GCSFolder.m \