1. /*
  2. * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
  3. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  4. */
  5. package javax.mail.search;
  6. /**
  7. * This class implements comparisons for integers.
  8. *
  9. * @author Bill Shannon
  10. * @author John Mani
  11. */
  12. public abstract class IntegerComparisonTerm extends ComparisonTerm {
  13. /**
  14. * The number.
  15. *
  16. * @serial
  17. */
  18. protected int number;
  19. protected IntegerComparisonTerm(int comparison, int number) {
  20. this.comparison = comparison;
  21. this.number = number;
  22. }
  23. /**
  24. * Return the number to compare with.
  25. */
  26. public int getNumber() {
  27. return number;
  28. }
  29. /**
  30. * Return the type of comparison.
  31. */
  32. public int getComparison() {
  33. return comparison;
  34. }
  35. protected boolean match(int i) {
  36. switch (comparison) {
  37. case LE:
  38. return i <= number;
  39. case LT:
  40. return i < number;
  41. case EQ:
  42. return i == number;
  43. case NE:
  44. return i != number;
  45. case GT:
  46. return i > number;
  47. case GE:
  48. return i >= number;
  49. default:
  50. return false;
  51. }
  52. }
  53. /**
  54. * Equality comparison.
  55. */
  56. public boolean equals(Object obj) {
  57. if (!(obj instanceof IntegerComparisonTerm))
  58. return false;
  59. IntegerComparisonTerm ict = (IntegerComparisonTerm)obj;
  60. return ict.number == this.number && super.equals(obj);
  61. }
  62. /**
  63. * Compute a hashCode for this object.
  64. */
  65. public int hashCode() {
  66. return number + super.hashCode();
  67. }
  68. }