removed more old libs
[TestXSLT.git] / Workset.m
1 //
2 //  Workset.m
3 //  TestXSLT
4 //
5 //  Created by Marc Liyanage on Sun Mar 03 2002.
6 //  Copyright (c) 2001 __MyCompanyName__. All rights reserved.
7 //
8
9 #import "Workset.h"
10
11
12 @implementation Workset
13
14 - (id)init {
15         
16         self = [super init];
17         if (!self) return nil;
18         
19         xmlCode = [[NSUserDefaults standardUserDefaults] stringForKey:@"templateXML"];
20         xsltCode = [[NSUserDefaults standardUserDefaults] stringForKey:@"templateXSLT"];
21         
22 //      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];
23 //      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];
24         result = [[NSData alloc] init];
25         parameterSet = [[ParameterSet alloc] init];
26         xmlFilename = nil;
27         xsltFilename = nil;
28         resultFilename = nil;
29
30         return self;
31         
32 }
33
34 - (id)initWithCoder:(NSCoder *)coder {
35
36         if (self = [super init]) {
37                 [self setXmlCode:[coder decodeObject]];
38                 [self setXsltCode:[coder decodeObject]];
39                 [self setResult:[coder decodeObject]];
40                 [self setParameterSet:[coder decodeObject]];
41                 [self setXmlFilename:[coder decodeObject]];
42                 [self setXsltFilename:[coder decodeObject]];
43                 [self setResultFilename:[coder decodeObject]];
44                 
45         }
46         return self;
47
48 }
49
50
51 - (void)encodeWithCoder:(NSCoder *)coder {
52
53         [coder encodeObject:xmlCode];
54         [coder encodeObject:xsltCode];
55         [coder encodeObject:result];
56         [coder encodeObject:parameterSet];
57         [coder encodeObject:xmlFilename];
58         [coder encodeObject:xsltFilename];
59         [coder encodeObject:resultFilename];
60
61 }
62
63
64 - (void)dealloc {
65
66         [xmlCode release];
67         [xsltCode release];
68         [result release];
69         [parameterSet release];
70
71
72         [super dealloc];
73
74 //      NSLog(@"Workset dealloc");
75
76 }
77
78 - (NSString *)xmlCode {
79         return xmlCode;
80 }
81
82 - (void)setXmlCode:(NSString *)s {
83         [s retain];
84         [xmlCode release];
85         xmlCode = s;
86 }
87
88
89
90
91
92
93 - (NSString *)xmlFilename {
94         return xmlFilename;
95 }
96
97 - (void)setXmlFilename:(NSString *)s {
98
99         [s retain];
100         [xmlFilename release];
101         xmlFilename = s;
102
103         [self updateXmlFileModificationDate];
104 }
105
106 - (BOOL)hasXmlFilename {
107         return xmlFilename != nil;
108 }
109
110 - (BOOL)saveXml {
111
112         if (![self hasXmlFilename]) {
113                 return FALSE;
114         }
115         
116         [[XMLUtils getDataWithEncodingFromString:[self xmlCode]] writeToFile:[self xmlFilename] atomically:NO];
117         [self updateXmlFileModificationDate];
118
119         return YES;
120         
121 }
122
123 - (BOOL)xmlModifiedExternally {
124
125         NSDictionary *fileAttr;
126
127         if (![self hasXmlFilename]) {
128                 return FALSE;
129         }
130
131         fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
132
133         if (fileAttr == nil || xmlFileModificationDate == nil) {
134                 return FALSE;
135         }
136
137         if (![xmlFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
138                 return TRUE;
139         }
140
141         return FALSE;
142         
143 }
144
145 - (void)updateXmlFileModificationDate {
146
147         NSDictionary *fileAttr;
148
149         if ([self hasXmlFilename]) {
150                 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
151                 [xmlFileModificationDate release];
152                 xmlFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
153                 [xmlFileModificationDate retain];
154 //              NSLog(@"xml file mod date: %@", xmlFileModificationDate);
155         }
156
157 }
158
159 - (void)reloadXmlFromFile {
160
161         [self setXmlCode:[XMLUtils getStringWithEncodingFromFile:[self xmlFilename]]];
162         [self updateXmlFileModificationDate];
163
164 }
165
166
167
168
169
170 - (int)resultEncoding {
171         return resultEncoding;
172 }
173
174 - (void)setResultEncoding:(NSStringEncoding)newencoding {
175         resultEncoding = newencoding;
176 }
177
178
179
180
181
182 - (NSString *)xsltFilename {
183         return xsltFilename;
184 }
185
186 - (void)setXsltFilename:(NSString *)s {
187
188         [s retain];
189         [xsltFilename release];
190         xsltFilename = s;
191
192         [self updateXsltFileModificationDate];
193         
194 }
195
196 - (BOOL)hasXsltFilename {
197         return xsltFilename != nil;
198 }
199
200 - (BOOL)saveXslt {
201
202         if (![self hasXsltFilename]) {
203                 return FALSE;
204         }
205
206         [[XMLUtils getDataWithEncodingFromString:[self xsltCode]] writeToFile:[self xsltFilename] atomically:NO];
207         [self updateXsltFileModificationDate];
208
209         return YES;
210
211 }
212
213 - (BOOL)xsltModifiedExternally {
214
215         NSDictionary *fileAttr;
216
217         if (![self hasXsltFilename]) {
218                 return FALSE;
219         }
220
221         fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
222
223         if (fileAttr == nil || xsltFileModificationDate == nil) {
224                 return FALSE;
225         }
226
227         if (![xsltFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
228                 return TRUE;
229         }
230
231         return FALSE;
232
233 }
234
235 - (void)updateXsltFileModificationDate {
236
237         NSDictionary *fileAttr;
238
239         if ([self hasXsltFilename]) {
240                 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
241                 [xsltFileModificationDate release];
242                 xsltFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
243                 [xsltFileModificationDate retain];
244 //              NSLog(@"xslt file mod date: %@", xsltFileModificationDate);
245         }
246 }
247
248 - (void)reloadXsltFromFile {
249
250         [self setXsltCode:[XMLUtils getStringWithEncodingFromFile:[self xsltFilename]]];
251         [self updateXsltFileModificationDate];
252                 
253 }
254
255
256
257
258
259 - (NSString *)resultFilename {
260         return resultFilename;
261 }
262
263 - (void)setResultFilename:(NSString *)s {
264         [s retain];
265         [resultFilename release];
266         resultFilename = s;
267 }
268
269 - (BOOL)hasResultFilename {
270         return resultFilename != nil;
271 }
272
273
274
275
276 - (NSString *)xsltCode {
277         return xsltCode;
278 }
279
280 - (void)setXsltCode:(NSString *)s {
281         [s retain];
282         [xsltCode release];
283         xsltCode = s;
284 }
285
286 - (NSData *)result {
287         return result;
288 }
289
290 - (void)setResult:(NSData *)s {
291         [s retain];
292         [result release];
293         result = s;
294 }
295
296
297 - (NSString *)stringResult {
298         return [[[NSString alloc] initWithData:result encoding:[self resultEncoding]] autorelease];
299 }
300
301
302
303 - (ParameterSet *)parameterSet {
304         return parameterSet;
305 }
306
307 - (void)setParameterSet:(ParameterSet *)newParams {
308         [newParams retain];
309         [parameterSet release];
310         parameterSet = newParams;
311 }
312
313 - (BOOL)hasXmlCode {
314         return ([xmlCode length] > 0);
315 }
316
317 - (BOOL)hasXsltCode {
318         return ([xsltCode length] > 0);
319 }
320
321 - (BOOL)hasResult {
322         return ([result length] > 0);
323 }
324
325 - (BOOL)hasParameters {
326         return ([parameterSet count] > 0);
327 }
328
329
330
331
332
333 @end