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    }