aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPExportUtilities.m
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2010-08-12 12:56:20 +0000
committerstuconnolly <stuart02@gmail.com>2010-08-12 12:56:20 +0000
commitfc02f913371d522a025c47824fafeba8e3174da1 (patch)
tree086561fd418bf35139dda47d698d7923196a4f30 /Source/SPExportUtilities.m
parent50f15c41936be3fb62384834bb3629e09018e67b (diff)
downloadsequelpro-fc02f913371d522a025c47824fafeba8e3174da1.tar.gz
sequelpro-fc02f913371d522a025c47824fafeba8e3174da1.tar.bz2
sequelpro-fc02f913371d522a025c47824fafeba8e3174da1.zip
Various export enhancements and fixes, including:
- A new SPExportFile class, providing an abstract interface to the handling and creation of export files. - Enables the centralisation of all file/file handle creation logic as well as better support for handling situations where files fail to be created, including files that already exist at the export location. - New SPExportFileHandleStatus constants to support the reporting of file handle creation. - Update SPExporter to use the new file class instead of directly using an instance of SPFileHandle. - Add the necessary logic to deal with files that already exist on disk, by providing the user with 3 options: cancel the export, ignore the files in question or overwrite them. We might want to enhance this to make new files sequential in name to prevent overwriting. Fixes issue #742. - New SPExportFileUtilities category, which centralises all the logic relating to writing export type headers as well as dealing with problems occurred during file/file handle creation. - Improve feedback given on the export progress sheet during export initialisation. - Tidy up and improve comments.
Diffstat (limited to 'Source/SPExportUtilities.m')
-rw-r--r--Source/SPExportUtilities.m12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/SPExportUtilities.m b/Source/SPExportUtilities.m
index bf532bb2..543beb67 100644
--- a/Source/SPExportUtilities.m
+++ b/Source/SPExportUtilities.m
@@ -27,13 +27,19 @@
@implementation SPExportUtilities
+/**
+ * Tests whether the supplied delegate conforms to the supplied protocol. Throws an exception if it doesn't.
+ *
+ * @param delegate The delegate that is be tested.
+ * @param protocol The protocol that we are testing conformance for.
+ */
void SPExportDelegateConformsToProtocol(NSObject *delegate, Protocol *protocol)
{
// Check that the the supplied delegate conforms to the supplied protocol, if not throw an exception
if (![delegate conformsToProtocol:protocol]) {
- @throw [NSException exceptionWithName:@"Protocol Conformance"
- reason:[NSString stringWithFormat:@"The supplied delegate does not conform to the protocol '%@'.", NSStringFromProtocol(protocol)]
- userInfo:nil];
+ [NSException raise:@"Protocol Conformance"
+ format:@"The supplied delegate does not conform to the protocol '%@'."
+ arguments:NSStringFromProtocol(protocol)];
}
}