00001 /*========================================================================== 00002 Copyright (c) 2004 University of Massachusetts. All Rights Reserved. 00003 00004 Use of the Lemur Toolkit for Language Modeling and Information Retrieval 00005 is subject to the terms of the software license set forth in the LICENSE 00006 file included with this software, and also available at 00007 http://www.cs.cmu.edu/~lemur/license.html 00008 as well as the conditions below. 00009 00010 Redistribution and use in source and binary forms, with or without 00011 modification, are permitted provided that the following conditions 00012 are met: 00013 00014 1. Redistributions of source code must retain the above copyright 00015 notice, this list of conditions and the following disclaimer. 00016 00017 2. Redistributions in binary form must reproduce the above copyright 00018 notice, this list of conditions and the following disclaimer in 00019 the documentation and/or other materials provided with the 00020 distribution. 00021 00022 3. The names "Indri", "Center for Intelligent Information Retrieval", 00023 "CIIR", and "University of Massachusetts" must not be used to 00024 endorse or promote products derived from this software without 00025 prior written permission. To obtain permission, contact 00026 indri-info@ciir.cs.umass.edu. 00027 00028 4. Products derived from this software may not be called "Indri" nor 00029 may "Indri" appear in their names without prior written permission of 00030 the University of Massachusetts. To obtain permission, contact 00031 indri-info@ciir.cs.umass.edu. 00032 00033 THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF MASSACHUSETTS AND OTHER 00034 CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 00035 BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 00036 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 00037 THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00038 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00039 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 00040 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 00041 AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 00042 TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 00043 THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 00044 DAMAGE. 00045 ========================================================================== 00046 */ 00047 00048 00049 // 00050 // FieldEqualsNode.hpp 00051 // 00052 // 26 October 2004 -- tds 00053 // 00054 00055 #ifndef INDRI_FIELDEQUALSNODE_HPP 00056 #define INDRI_FIELDEQUALSNODE_HPP 00057 00058 #include "indri/ListIteratorNode.hpp" 00059 #include "indri/greedy_vector" 00060 #include "lemur-platform.h" 00061 00062 class FieldEqualsNode : public ListIteratorNode { 00063 private: 00064 class FieldIteratorNode* _field; 00065 greedy_vector<Extent> _extents; 00066 UINT64 _constant; 00067 std::string _name; 00068 00069 public: 00070 FieldEqualsNode( const std::string& name, class FieldIteratorNode* iterator, UINT64 constant ); 00071 00072 void prepare( int documentID ); 00073 greedy_vector<Extent>& extents(); 00074 int nextCandidateDocument(); 00075 const std::string& getName() const; 00076 void annotate( class Annotator& annotator, int documentID, int begin, int end ); 00077 }; 00078 00079 #endif // INDRI_FIELDEQUALSNODE_HPP 00080