KickJava   Java API By Example, From Geeks To Geeks.

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


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 java.util.*;
13 import org.mmbase.storage.search.*;
14
15 /**
16  * Basic implementation.
17  *
18  * @author Rob van Maris
19  * @version $Id: BasicFieldValueInConstraint.java,v 1.13 2005/04/25 14:56:57 pierre Exp $
20  * @since MMBase-1.7
21  */

22 public class BasicFieldValueInConstraint extends BasicFieldConstraint implements FieldValueInConstraint {
23
24     /** The values. */
25     private SortedSet values = new TreeSet();
26
27     /**
28      * Constructor.
29      *
30      * @param field The associated field.
31      */

32     public BasicFieldValueInConstraint(StepField field) {
33         super(field);
34     }
35
36     /**
37      * Adds value.
38      *
39      * @param value The value.
40      * @return This <code>BasicFieldValueInConstraint</code> instance.
41      * @throws IllegalArgumentException when an invalid argument is supplied.
42      * @see org.mmbase.storage.search.FieldValueInConstraint#getValues
43      */

44     public BasicFieldValueInConstraint addValue(Object JavaDoc value) {
45         BasicStepField.testValue(value, getField());
46         values.add(value);
47         return this;
48     }
49
50     // javadoc is inherited
51
public SortedSet getValues() {
52         return Collections.unmodifiableSortedSet(values);
53     }
54
55     // javadoc is inherited
56
public boolean equals(Object JavaDoc obj) {
57         if (obj == this) {
58             return true;
59         }
60         // Must be same class (subclasses should override this)!
61
if (obj != null && obj.getClass() == getClass()) {
62             BasicFieldValueInConstraint constraint = (BasicFieldValueInConstraint) obj;
63             return isInverse() == constraint.isInverse()
64                 && isCaseSensitive() == constraint.isCaseSensitive()
65                 && getField().getFieldName().equals(constraint.getField().getFieldName())
66                 && BasicStepField.compareSteps(getField().getStep(),
67                     constraint.getField().getStep())
68                 && values.equals(constraint.values);
69         } else {
70             return false;
71         }
72     }
73
74     // javadoc is inherited
75
public int hashCode() {
76         return super.hashCode()
77         + 89 * values.hashCode();
78     }
79
80     // javadoc is inherited
81
public String JavaDoc toString() {
82         StringBuffer JavaDoc sb = new StringBuffer JavaDoc("FieldValueInConstraint(inverse:").
83         append(isInverse()).
84         append(", field:").append(getFieldName()).
85         append(", casesensitive:").append(isCaseSensitive()).
86         append(", values:").append(getValues()).
87         append(")");
88         return sb.toString();
89     }
90
91 }
92
Popular Tags