1 10 package org.mmbase.storage.search.implementation; 11 12 import org.mmbase.storage.search.*; 13 14 22 23 public class BasicFieldConstraint extends BasicConstraint implements FieldConstraint { 25 26 27 private StepField field; 28 29 30 private boolean caseSensitive = true; 31 32 39 protected BasicFieldConstraint(StepField field) { 40 if (field == null) { 42 throw new IllegalArgumentException ("Invalid field value: " + field); 43 } 44 this.field = field; 45 } 46 47 54 public BasicFieldConstraint setCaseSensitive(boolean caseSensitive) { 55 this.caseSensitive = caseSensitive; 56 return this; 57 } 58 59 public StepField getField() { 61 return field; 62 } 63 64 public boolean isCaseSensitive() { 66 return caseSensitive; 67 } 68 69 public boolean equals(Object obj) { 71 if (obj != null && obj.getClass() == getClass()) { 73 BasicFieldConstraint constraint = (BasicFieldConstraint) obj; 74 return isInverse() == constraint.isInverse() 75 && caseSensitive == constraint.isCaseSensitive() 76 && field.getFieldName().equals(constraint.getField().getFieldName()) 77 && BasicStepField.compareSteps(getField().getStep(), 78 constraint.getField().getStep()); 79 } else { 80 return false; 81 } 82 } 83 84 public int hashCode() { 86 return super.hashCode() 87 + (isCaseSensitive()? 0: 73) 88 + 79 * field.getFieldName().hashCode() 89 + (field.getStep().getAlias() == null? 90 87 * field.getStep().getTableName().hashCode(): 91 83 * field.getStep().getAlias().hashCode()); 92 } 93 94 98 public String getFieldName() { 99 return BasicStepField.getFieldName(getField()); 100 } 101 102 public String toString() { 104 StringBuffer sb = new StringBuffer ("BasicFieldConstraint(inverse:"). 105 append(isInverse()). 106 append("field:").append(getFieldName()). 107 append(", casesensitive:").append(isCaseSensitive()). 108 append(")"); 109 return sb.toString(); 110 } 111 112 } 113 | Popular Tags |