View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  package org.xnap.search;
21  
22  
23  /***
24   * Defines the requirements for classes that provide search functionality. 
25   */
26  public interface SearchFilter {
27  
28      //--- Constant(s) ---
29  
30      /***
31       * Default key for the minimum filesize.
32       */
33      String MIN_FILESIZE = "minFilesize";
34  
35      /***
36       * Default key for the maximum filesize.
37       */
38      String MAX_FILESIZE = "maxFilesize";
39  
40      /***
41       * Default key for the media type.
42       */
43      String MEDIA_TYPE = "mediaType";
44  
45      /***
46       * Default key for path.
47       */
48      String PATH = "path";
49  
50      /***
51       * Default key for the search text.
52       */
53      String TEXT = "text";
54  
55      //--- Method(s) ---
56  
57      /***
58       * Returns a value.
59       */
60      Object get(String key);
61  
62      /***
63       * Returns the media type.
64       */
65      MediaType getMediaType();
66  
67      /***
68       * Returns the search text. 
69       */
70      String getText();
71  
72      /***
73       * Sets a value.
74       */
75      void put(String key, Object value);
76  
77      /***
78       * Returns true, if the filter accepts <code>result</code>.
79       */
80      boolean matches(SearchResult result);
81  
82  }