5 // Created by Marc Liyanage on Sun Mar 03 2002.
6 // Copyright (c) 2001 __MyCompanyName__. All rights reserved.
12 @implementation Workset
16 if (self = [super init]) {
17 xmlCode = [[NSString stringWithFormat:@"<text>\nPut your XML code here.\nPut your XSLT code under the XSLT tab.\nThen click on the Process button.\n</text>"] retain];
18 xsltCode = [[NSString stringWithFormat:@"<?xml version='1.0' encoding='iso-8859-1'?>\n\n<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n\n<xsl:output method='html' version='1.0' encoding='iso-8859-1' indent='no'/>\n\n</xsl:stylesheet>"] retain];
19 result = [[NSString alloc] init];
20 parameterSet = [[ParameterSet alloc] init];
25 // NSLog(@"Workset init");
30 - (id)initWithCoder:(NSCoder *)coder {
32 if (self = [super init]) {
33 [self setXmlCode:[coder decodeObject]];
34 [self setXsltCode:[coder decodeObject]];
35 [self setResult:[coder decodeObject]];
36 [self setParameterSet:[coder decodeObject]];
37 [self setXmlFilename:[coder decodeObject]];
38 [self setXsltFilename:[coder decodeObject]];
39 [self setResultFilename:[coder decodeObject]];
47 - (void)encodeWithCoder:(NSCoder *)coder {
49 [coder encodeObject:xmlCode];
50 [coder encodeObject:xsltCode];
51 [coder encodeObject:result];
52 [coder encodeObject:parameterSet];
53 [coder encodeObject:xmlFilename];
54 [coder encodeObject:xsltFilename];
55 [coder encodeObject:resultFilename];
65 [parameterSet release];
70 // NSLog(@"Workset dealloc");
74 - (NSString *)xmlCode {
78 - (void)setXmlCode:(NSString *)s {
89 - (NSString *)xmlFilename {
93 - (void)setXmlFilename:(NSString *)s {
96 [xmlFilename release];
99 [self updateXmlFileModificationDate];
102 - (BOOL)hasXmlFilename {
103 return xmlFilename != nil;
108 if (![self hasXmlFilename]) {
112 [[self xmlCode] writeToFile:[self xmlFilename] atomically:NO];
113 [self updateXmlFileModificationDate];
119 - (BOOL)xmlModifiedExternally {
121 NSDictionary *fileAttr;
123 if (![self hasXmlFilename]) {
127 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
129 if (fileAttr == nil || xmlFileModificationDate == nil) {
133 if (![xmlFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
141 - (void)updateXmlFileModificationDate {
143 NSDictionary *fileAttr;
145 if ([self hasXmlFilename]) {
146 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
147 [xmlFileModificationDate release];
148 xmlFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
149 [xmlFileModificationDate retain];
150 // NSLog(@"xml file mod date: %@", xmlFileModificationDate);
155 - (void)reloadXmlFromFile {
157 [self setXmlCode:[NSString stringWithContentsOfFile:[self xmlFilename]]];
158 [self updateXmlFileModificationDate];
169 - (NSString *)xsltFilename {
173 - (void)setXsltFilename:(NSString *)s {
176 [xsltFilename release];
179 [self updateXsltFileModificationDate];
183 - (BOOL)hasXsltFilename {
184 return xsltFilename != nil;
189 if (![self hasXsltFilename]) {
193 [[self xsltCode] writeToFile:[self xsltFilename] atomically:NO];
194 [self updateXsltFileModificationDate];
200 - (BOOL)xsltModifiedExternally {
202 NSDictionary *fileAttr;
204 if (![self hasXsltFilename]) {
208 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
210 if (fileAttr == nil || xsltFileModificationDate == nil) {
214 if (![xsltFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
222 - (void)updateXsltFileModificationDate {
224 NSDictionary *fileAttr;
226 if ([self hasXsltFilename]) {
227 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
228 [xsltFileModificationDate release];
229 xsltFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
230 [xsltFileModificationDate retain];
231 // NSLog(@"xslt file mod date: %@", xsltFileModificationDate);
235 - (void)reloadXsltFromFile {
237 [self setXsltCode:[NSString stringWithContentsOfFile:[self xsltFilename]]];
238 [self updateXsltFileModificationDate];
249 - (NSString *)resultFilename {
250 return resultFilename;
253 - (void)setResultFilename:(NSString *)s {
255 [resultFilename release];
259 - (BOOL)hasResultFilename {
260 return resultFilename != nil;
266 - (NSString *)xsltCode {
270 - (void)setXsltCode:(NSString *)s {
276 - (NSString *)result {
280 - (void)setResult:(NSString *)s {
286 - (ParameterSet *)parameterSet {
290 - (void)setParameterSet:(ParameterSet *)newParams {
292 [parameterSet release];
293 parameterSet = newParams;
297 return ([xmlCode length] > 0);
300 - (BOOL)hasXsltCode {
301 return ([xsltCode length] > 0);
305 return ([result length] > 0);
308 - (BOOL)hasParameters {
309 return ([parameterSet count] > 0);