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 import javax.mail.Message;
021
022 /**
023 * Term that implements a logical negation.
024 *
025 * @version $Rev: 126550 $ $Date: 2005-01-26 14:27:45 -0800 (Wed, 26 Jan 2005) $
026 */
027 public final class NotTerm extends SearchTerm {
028 protected SearchTerm term;
029
030 public NotTerm(SearchTerm term) {
031 this.term = term;
032 }
033
034 public SearchTerm getTerm() {
035 return term;
036 }
037
038 public boolean match(Message message) {
039 return !term.match(message);
040 }
041
042 public boolean equals(Object other) {
043 if (other == this) return true;
044 if (other instanceof NotTerm == false) return false;
045 return term.equals(((NotTerm) other).term);
046 }
047
048 public int hashCode() {
049 return term.hashCode();
050 }
051 }