]> err.no Git - sope/blob - sope-appserver/NGObjWeb/WebDAV/EOFetchSpecification+SoDAV.m
minor code cleanups
[sope] / sope-appserver / NGObjWeb / WebDAV / EOFetchSpecification+SoDAV.m
1 /*
2   Copyright (C) 2000-2005 SKYRIX Software AG
3
4   This file is part of SOPE.
5
6   SOPE is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with SOPE; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21
22 #include "EOFetchSpecification+SoDAV.h"
23 #include "SoDAVSQLParser.h"
24 #include <EOControl/EOControl.h>
25 #include "common.h"
26
27 @implementation EOFetchSpecification(SoDAV)
28
29 + (EOFetchSpecification *)parseWebDAVSQLString:(NSString *)_sql {
30   EOFetchSpecification *fs;
31   static SoDAVSQLParser *parser = nil;
32   
33   /* parse SQL */
34   
35   if (parser == nil)
36     parser = [[SoDAVSQLParser alloc] init];
37   
38   if ((fs = [parser parseSQLSelectStatement:_sql]) == nil)
39     return nil;
40   
41   /* morph attribute names ? */
42   return fs;
43 }
44
45 - (NSArray *)selectedWebDAVPropertyNames {
46   return [[self hints] objectForKey:@"attributes"];
47 }
48
49 - (NSString *)scopeOfWebDAVQuery {
50   NSString *scope;
51   
52   scope = [[self hints] objectForKey:@"scope"];
53   return [scope length] == 0 ? @"flat" : (id)scope;
54 }
55
56 - (BOOL)queryWebDAVPropertyNamesOnly {
57   id v;
58   if ((v = [[self hints] objectForKey:@"namesOnly"]))
59     return [v boolValue];
60   return NO;
61 }
62
63 - (NSArray *)davBulkTargetKeys {
64   return [[self hints] objectForKey:@"bulkTargetKeys"];
65 }
66
67 @end /* EOFetchSpecification(SoDAV) */