]> err.no Git - sope/blob - sope-gdl1/GDLAccess/EOKeyValueQualifier+SQL.m
added missing inline pathes
[sope] / sope-gdl1 / GDLAccess / EOKeyValueQualifier+SQL.m
1 /* 
2    EOAdaptorChannel.m
3
4    Copyright (C) 1996 Free Software Foundation, Inc.
5
6    Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
7    Date: October 1996
8
9    This file is part of the GNUstep Database Library.
10
11    This library is free software; you can redistribute it and/or
12    modify it under the terms of the GNU Library General Public
13    License as published by the Free Software Foundation; either
14    version 2 of the License, or (at your option) any later version.
15
16    This library is distributed in the hope that it will be useful,
17    but WITHOUT ANY WARRANTY; without even the implied warranty of
18    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19    Library General Public License for more details.
20
21    You should have received a copy of the GNU Library General Public
22    License along with this library; see the file COPYING.LIB.
23    If not, write to the Free Software Foundation,
24    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 */
26 // $Id: EOKeyValueQualifier+SQL.m 1 2004-08-20 10:38:46Z znek $
27
28 #import "EOSQLQualifier.h"
29 #include "common.h"
30
31 @implementation EOKeyValueQualifier(SQLQualifier)
32
33 /* SQL qualifier generation */
34
35 - (EOSQLQualifier *)sqlQualifierForEntity:(EOEntity *)_entity {
36   EOSQLQualifier *q;
37   NSString *format;
38   
39   if (SEL_EQ(self->operator,  EOQualifierOperatorEqual))
40       format = @"%A = %@";
41   else if (SEL_EQ(self->operator, EOQualifierOperatorNotEqual))
42       format = @"%A <> %@";
43   else if (SEL_EQ(self->operator, EOQualifierOperatorLessThan))
44       format = @"%A < %@";
45   else if (SEL_EQ(self->operator, EOQualifierOperatorGreaterThan))
46       format = @"%A > %@";
47   else if (SEL_EQ(self->operator, EOQualifierOperatorLessThanOrEqualTo))
48       format = @"%A <= %@";
49   else if (SEL_EQ(self->operator, EOQualifierOperatorGreaterThanOrEqualTo))
50       format = @"%A >= %@";
51   else if (SEL_EQ(self->operator, EOQualifierOperatorLike))
52       format = @"%A LIKE %@";
53   else {
54       format = [NSString stringWithFormat:@"%%A %@ %%@",
55                            NSStringFromSelector(self->operator)];
56   }
57   
58   q = [[EOSQLQualifier alloc]
59                        initWithEntity:_entity
60                        qualifierFormat:format, self->key, self->value];
61   return AUTORELEASE(q);
62 }
63
64 @end /* EOKeyValueQualifier */