1 10 package org.mmbase.storage.search.implementation; 11 12 import java.util.*; 13 import org.mmbase.storage.search.*; 14 15 22 public class BasicFieldValueInConstraint extends BasicFieldConstraint implements FieldValueInConstraint { 23 24 25 private SortedSet values = new TreeSet(); 26 27 32 public BasicFieldValueInConstraint(StepField field) { 33 super(field); 34 } 35 36 44 public BasicFieldValueInConstraint addValue(Object value) { 45 BasicStepField.testValue(value, getField()); 46 values.add(value); 47 return this; 48 } 49 50 public SortedSet getValues() { 52 return Collections.unmodifiableSortedSet(values); 53 } 54 55 public boolean equals(Object obj) { 57 if (obj == this) { 58 return true; 59 } 60 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 public int hashCode() { 76 return super.hashCode() 77 + 89 * values.hashCode(); 78 } 79 80 public String toString() { 82 StringBuffer sb = new StringBuffer ("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 |