001 /** 002 * 003 * Copyright 2003-2004 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package javax.mail.search; 019 020 /** 021 * A Term that provides comparisons for integers. 022 * 023 * @version $Rev: 126550 $ $Date: 2005-01-26 14:27:45 -0800 (Wed, 26 Jan 2005) $ 024 */ 025 public abstract class IntegerComparisonTerm extends ComparisonTerm { 026 protected int number; 027 028 protected IntegerComparisonTerm(int comparison, int number) { 029 super(); 030 this.comparison = comparison; 031 this.number = number; 032 } 033 034 public int getNumber() { 035 return number; 036 } 037 038 public int getComparison() { 039 return comparison; 040 } 041 042 protected boolean match(int match) { 043 switch (comparison) { 044 case EQ: 045 return match == number; 046 case NE: 047 return match != number; 048 case GT: 049 return match > number; 050 case GE: 051 return match >= number; 052 case LT: 053 return match < number; 054 case LE: 055 return match <= number; 056 default: 057 return false; 058 } 059 } 060 061 public boolean equals(Object other) { 062 if (other == this) return true; 063 if (other instanceof IntegerComparisonTerm == false) return false; 064 final IntegerComparisonTerm term = (IntegerComparisonTerm) other; 065 return this.comparison == term.comparison && this.number == term.number; 066 } 067 068 public int hashCode() { 069 return number; 070 } 071 }