KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > storage > search > implementation > BasicFieldValueBetweenConstraint


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.storage.search.implementation;
11
12 import org.mmbase.storage.search.*;
13
14 /**
15  * Basic implementation.
16  *
17  * @author Rob van Maris
18  * @version $Id: BasicFieldValueBetweenConstraint.java,v 1.8 2005/04/25 14:56:57 pierre Exp $
19  * @since MMBase-1.7
20  */

21 public class BasicFieldValueBetweenConstraint extends BasicFieldConstraint
22 implements FieldValueBetweenConstraint {
23
24     /** The lower limit. */
25     private Object JavaDoc lowerLimit = null;
26
27     /** The upper limit. */
28     private Object JavaDoc upperLimit = null;
29
30     /**
31      * Constructor.
32      * <p>
33      * Depending on the field type, the limit values must be of type
34      * <code>String</code> or <code>Number</code>.
35      *
36      * @param field The associated field.
37      * @param lowerLimit The lower limit.
38      * @param upperLimit The upper limit.
39      * @throws IllegalArgumentException when an invalid argument is supplied.
40      */

41     public BasicFieldValueBetweenConstraint(
42         StepField field, Object JavaDoc lowerLimit, Object JavaDoc upperLimit) {
43
44         super(field);
45         setLowerLimit(lowerLimit);
46         setUpperLimit(upperLimit);
47     }
48
49     /**
50      * Sets the lower limit property.
51      * <p>
52      * Depending on the field type, the value must be of type
53      * <code>String</code> or <code>Number</code>.
54      *
55      * @param lowerLimit The non-null lower limit property value.
56      * @return This <code>BasicFieldValueBetweenConstraint</code> instance.
57      * @throws IllegalArgumentException when an invalid argument is supplied.
58      */

59     public BasicFieldValueBetweenConstraint setLowerLimit(Object JavaDoc lowerLimit) {
60         this.lowerLimit = lowerLimit;
61         return this;
62     }
63
64     /**
65      * Sets the upper limit property.
66      * <p>
67      * Depending on the field type, the value must be of type
68      * <code>String</code> or <code>Number</code>.
69      *
70      * @param upperLimit The non-null upper limit property value.
71      * @return This <code>BasicFieldValueBetweenConstraint</code> instance.
72      * @throws IllegalArgumentException when an invalid argument is supplied.
73      */

74     public BasicFieldValueBetweenConstraint setUpperLimit(Object JavaDoc upperLimit) {
75         this.upperLimit = upperLimit;
76         return this;
77     }
78
79     // javadoc is inherited
80
public Object JavaDoc getLowerLimit() {
81         return lowerLimit;
82     }
83
84     // javadoc is inherited
85
public Object JavaDoc getUpperLimit() {
86         return upperLimit;
87     }
88
89     // javadoc is inherited
90
public boolean equals(Object JavaDoc obj) {
91         if (obj == this) {
92             return true;
93         }
94         // Must be same class (subclasses should override this)!
95
if (obj != null && obj.getClass() == getClass()) {
96             BasicFieldValueBetweenConstraint constraint = (BasicFieldValueBetweenConstraint) obj;
97             return isInverse() == constraint.isInverse()
98                 && isCaseSensitive() == constraint.isCaseSensitive()
99                 && getField().getFieldName().equals(constraint.getField().getFieldName())
100                 && BasicStepField.compareSteps(getField().getStep(),
101                     constraint.getField().getStep())
102                 && lowerLimit.equals(constraint.lowerLimit)
103                 && upperLimit.equals(constraint.upperLimit);
104         } else {
105             return false;
106         }
107     }
108
109     // javadoc is inherited
110
public int hashCode() {
111         return 101 * (lowerLimit.hashCode()
112             + 97 * (upperLimit.hashCode()
113                 + 89 * super.hashCode()));
114     }
115
116     // javadoc is inherited
117
public String JavaDoc toString() {
118         StringBuffer JavaDoc sb = new StringBuffer JavaDoc("FieldValueBetweenConstraint(inverse:").
119         append(isInverse()).
120         append(", field:").append(getFieldName()).
121         append(", casesensitive:").append(isCaseSensitive()).
122         append(", lower:").append(getLowerLimit()).
123         append(", upper:").append(getUpperLimit()).
124         append(")");
125         return sb.toString();
126     }
127 }
128
Popular Tags