KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jofti > api > Index


1 /*
2  * Copyright (C) <2005> <Steve Woodcock>
3  *
4  * Created on 01 June 2003, 08:12
5  */

6
7 package com.jofti.api;
8
9 import java.util.Map JavaDoc;
10
11 import com.jofti.exception.JoftiException;
12
13 /**
14  *
15  *
16  * This interface is used as the base interface for Indexes. The index is only
17  * searchable via the query method and is not available for direct manipulation.
18  * <p>
19  * The index does not require that all keys used are of the same type. It is reasonable to
20  * use many different key types. The only restriction is that the key must implement
21  * hashCode() and equals() if the searches are to work properly (as you would expect for HashMap).
22  * <p>
23  * Additionally, some caches have restrictions on key types:
24  * OSCache requires all keys to be String
25  * EHcache requires the key to be Serializable.
26  * <p>
27  * In general usage it is highly recommended (but not required) that you use keys that also implement
28  * Comparable.
29  * <p>
30  * @author Steve Woodcock<br>
31  * @version 1.7<br>
32  *
33  *
34  */

35 public interface Index {
36     
37      
38     /**
39      * This queries the index and retrieves a map of matching elements (if any). The map contains
40      * key/value pairs of the key in the cache and the value stored against it. If ordering is specified in the
41      * query then the iterator provides ordered access to the return values.
42      * <p>
43      * If you are using a NameSpacedIndex the keys returned
44      * in this map are of type @see NameSpaceKey.
45      * <p>
46      * @param query - the type of query to perform against the index and cache.
47      * @return Map a map of the key/value results<br>
48      * @throws JoftiException a wrapper exception for errors in the query. <br>
49      */

50     public Map JavaDoc query(IndexQuery query) throws JoftiException;
51      
52        
53     
54     /**
55      * Adds a Query to the Index. Currently, This only supports EJB or SQL format queries
56      * not the convenience queries.
57      * @param name - the name that the query is stored under.
58      * @param query - the query to be stored in the index.
59      * @return - The parsed query.
60      * @throws JoftiException - Thrown if the query is not able to be parsed.
61      */

62     public IndexQuery addQuery(String JavaDoc name, IndexQuery query) throws JoftiException ;
63     
64     
65     /**
66      * Obtains a previously stored query, whether stored programmatically or in a config file.
67      * Returns NULL if the query does not exist in the Index.
68      * @param name
69      * @return Query or NULL if no query is stored under the name.
70      */

71     public IndexQuery getQuery(String JavaDoc name) ;
72     
73     
74     
75 }
76
Popular Tags