KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > xquark > extractor > sql > SqlIfThenElse


1 /*
2  * This file belongs to the XQuark distribution.
3  * Copyright (C) 2003 Universite de Versailles Saint-Quentin.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307.
18  * You can also get it at http://www.gnu.org/licenses/lgpl.html
19  *
20  * For more information on this software, see http://www.xquark.org.
21  */

22
23 package org.xquark.extractor.sql;
24
25
26 public class SqlIfThenElse extends SqlExpression {
27
28     private static final String JavaDoc RCSRevision = "$Revision: 1.4 $";
29     private static final String JavaDoc RCSName = "$Name: $";
30
31
32     protected SqlExpression _if;
33     protected SqlExpression _then;
34     protected SqlExpression _else;
35
36     /**
37      * @roseuid 3B273D2502F9
38      */

39     public SqlIfThenElse()
40     {
41
42     }
43
44     /**
45      * @param iif
46      * @param tthen
47      * @param eelse
48      * @roseuid 3AB871F30183
49      */

50     public SqlIfThenElse(SqlExpression iif, SqlExpression tthen, SqlExpression eelse)
51     {
52         setIf(iif);
53         setThen(tthen);
54         setElse(eelse);
55     }
56
57
58     public SqlExpression getIf()
59     {
60      return _if;
61     }
62
63     public void setIf(SqlExpression iif)
64     {
65         _if = iif;
66     }
67
68     public SqlExpression getThen()
69     {
70      return _then;
71     }
72
73     public void setThen(SqlExpression tthen)
74     {
75         _then = tthen;
76     }
77
78     public SqlExpression getElse()
79     {
80      return _else;
81     }
82
83     public void setElse(SqlExpression eelse)
84     {
85         _else = eelse;
86     }
87
88     public String JavaDoc toSql (Context context)
89     {
90         //Trace.enter(this,"toSql(Context context)");
91

92         StringBuffer JavaDoc retVal = new StringBuffer JavaDoc();
93         retVal.append("( SELECT ");
94         retVal.append(_then.toSql(context));
95         retVal.append(" FROM DUAL WHERE ");
96         retVal.append(_if.toSql(context));
97
98         retVal.append(" UNION ALL SELECT ");
99         retVal.append(_else.toSql(context));
100         retVal.append(" FROM DUAL WHERE NOT (");
101         retVal.append(_if.toSql(context));
102         retVal.append(") )");
103
104         //Trace.exit(this,"toSql(Context context)");
105
return retVal.toString();
106     }
107 }
108
Popular Tags