001 package org.apache.ojb.broker.query;
002
003 /* Copyright 2002-2005 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 /**
019 * Models a Criteria comparing an attribute to a value
020 * <br>ie: name = 'Mark' , name like 'M%'
021 *
022 * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
023 * @version $Id: ValueCriteria.java,v 1.1 2007-08-24 22:17:36 ewestfal Exp $
024 */
025 public class ValueCriteria extends SelectionCriteria
026 {
027 static ValueCriteria buildEqualToCriteria(Object anAttribute, Object aValue, String anAlias)
028 {
029 return new ValueCriteria(anAttribute, aValue, EQUAL, anAlias);
030 }
031
032 static ValueCriteria buildEqualToCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
033 {
034 return new ValueCriteria(anAttribute, aValue, EQUAL, anAlias);
035 }
036
037 static ValueCriteria buildNotEqualToCriteria(Object anAttribute, Object aValue, String anAlias)
038 {
039 return new ValueCriteria(anAttribute, aValue, NOT_EQUAL, anAlias);
040 }
041 static ValueCriteria buildNotEqualToCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
042 {
043 return new ValueCriteria(anAttribute, aValue, NOT_EQUAL, anAlias);
044 }
045
046 static ValueCriteria buildGreaterCriteria(Object anAttribute, Object aValue, String anAlias)
047 {
048 return new ValueCriteria(anAttribute, aValue,GREATER, anAlias);
049 }
050 static ValueCriteria buildGreaterCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
051 {
052 return new ValueCriteria(anAttribute, aValue,GREATER, anAlias);
053 }
054
055 static ValueCriteria buildNotGreaterCriteria(Object anAttribute, Object aValue, String anAlias)
056 {
057 return new ValueCriteria(anAttribute, aValue, NOT_GREATER, anAlias);
058 }
059 static ValueCriteria buildNotGreaterCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
060 {
061 return new ValueCriteria(anAttribute, aValue, NOT_GREATER, anAlias);
062 }
063
064 static ValueCriteria buildLessCriteria(Object anAttribute, Object aValue, String anAlias)
065 {
066 return new ValueCriteria(anAttribute, aValue, LESS, anAlias);
067 }
068 static ValueCriteria buildLessCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
069 {
070 return new ValueCriteria(anAttribute, aValue, LESS, anAlias);
071 }
072
073 static ValueCriteria buildNotLessCriteria(Object anAttribute, Object aValue, String anAlias)
074 {
075 return new ValueCriteria(anAttribute, aValue, NOT_LESS, anAlias);
076 }
077 static ValueCriteria buildNotLessCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
078 {
079 return new ValueCriteria(anAttribute, aValue, NOT_LESS, anAlias);
080 }
081
082 static ValueCriteria buildLikeCriteria(Object anAttribute, Object aValue, String anAlias)
083 {
084 return new LikeCriteria(anAttribute, aValue, LIKE, anAlias);
085 }
086 static ValueCriteria buildLikeCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
087 {
088 return new LikeCriteria(anAttribute, aValue, LIKE, anAlias);
089 }
090
091 static ValueCriteria buildNotLikeCriteria(Object anAttribute, Object aValue, String anAlias)
092 {
093 return new ValueCriteria(anAttribute, aValue, NOT_LIKE, anAlias);
094 }
095 static ValueCriteria buildNotLikeCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
096 {
097 return new LikeCriteria(anAttribute, aValue, NOT_LIKE, anAlias);
098 }
099
100 static InCriteria buildInCriteria(Object anAttribute, Object aValue, String anAlias)
101 {
102 return new InCriteria(anAttribute, aValue, IN, anAlias);
103 }
104 static InCriteria buildInCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
105 {
106 return new InCriteria(anAttribute, aValue, IN, anAlias);
107 }
108
109 static InCriteria buildNotInCriteria(Object anAttribute, Object aValue, String anAlias)
110 {
111 return new InCriteria(anAttribute, aValue, NOT_IN, anAlias);
112 }
113 static InCriteria buildNotInCriteria(Object anAttribute, Object aValue, UserAlias anAlias)
114 {
115 return new InCriteria(anAttribute, aValue, NOT_IN, anAlias);
116 }
117
118 static NullCriteria buildNullCriteria(String anAttribute, String anAlias)
119 {
120 return new NullCriteria(anAttribute, IS_NULL, anAlias);
121 }
122 static NullCriteria buildNullCriteria(String anAttribute, UserAlias anAlias)
123 {
124 return new NullCriteria(anAttribute, IS_NULL, anAlias);
125 }
126
127 static NullCriteria buildNotNullCriteria(String anAttribute, String anAlias)
128 {
129 return new NullCriteria(anAttribute, NOT_IS_NULL, anAlias);
130 }
131 static NullCriteria buildNotNullCriteria(String anAttribute, UserAlias anAlias)
132 {
133 return new NullCriteria(anAttribute, NOT_IS_NULL, anAlias);
134 }
135
136 static BetweenCriteria buildBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, String anAlias)
137 {
138 return new BetweenCriteria(anAttribute, aValue1, aValue2, BETWEEN, anAlias);
139 }
140 static BetweenCriteria buildBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, UserAlias anAlias)
141 {
142 return new BetweenCriteria(anAttribute, aValue1, aValue2, BETWEEN, anAlias);
143 }
144
145 static BetweenCriteria buildNotBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, String anAlias)
146 {
147 return new BetweenCriteria(anAttribute, aValue1, aValue2, NOT_BETWEEN, anAlias);
148 }
149 static BetweenCriteria buildNotBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, UserAlias anAlias)
150 {
151 return new BetweenCriteria(anAttribute, aValue1, aValue2, NOT_BETWEEN, anAlias);
152 }
153
154 private String m_clause;
155
156 /**
157 * Constructor declaration
158 *
159 * @param anAttribute column- or fieldName
160 * @param aValue the value to compare with
161 * @param aClause the SQL compare clause (ie LIKE, = , IS NULL)
162 * @param anAlias use alias to link anAttribute to
163 */
164 ValueCriteria(Object anAttribute, Object aValue, String aClause, String anAlias)
165 {
166 super(anAttribute, aValue, anAlias);
167 m_clause = aClause;
168 }
169
170 /**
171 * Constructor declaration
172 *
173 * @param anAttribute column- or fieldName
174 * @param aValue the value to compare with
175 * @param aClause the SQL compare clause (ie LIKE, = , IS NULL)
176 * @param aUserAlias userAlias to link anAttribute to
177 */
178 ValueCriteria(Object anAttribute, Object aValue, String aClause, UserAlias aUserAlias)
179 {
180 super(anAttribute, aValue, aUserAlias);
181 m_clause = aClause;
182 }
183
184 /**
185 * @see org.apache.ojb.broker.query.SelectionCriteria#getClause()
186 */
187 public String getClause()
188 {
189 return m_clause;
190 }
191
192 }