CLI search, step 1
[fanfix.git] / src / be / nikiroo / fanfix / searchable / BasicSearchable.java
index 25c388a8e268aa1bde8a26f84c4d10a2721be070..ebc509611856b0a6f6d699a64c7a96592a68428a 100644 (file)
@@ -83,7 +83,7 @@ public abstract class BasicSearchable {
         * @throws IOException
         *             in case of I/O error
         */
-       abstract protected void fillTag(SearchableTag tag) throws IOException;
+       abstract public void fillTag(SearchableTag tag) throws IOException;
 
        /**
         * Search for the given term and return a list of stories satisfying this
@@ -115,26 +115,34 @@ public abstract class BasicSearchable {
         * 
         * @param tagId
         *            the tag to search for
+        * @param page
+        *            the page to use for result pagination (see
+        *            {@link SearchableTag#getPages()}, remember to check for -1),
+        *            index is 1-based
         * 
         * @return a list of stories that satisfy that search term
         * 
         * @throws IOException
         *             in case of I/O error
         */
-       abstract public List<MetaData> search(SearchableTag tag) throws IOException;
+       abstract public List<MetaData> search(SearchableTag tag, int page)
+                       throws IOException;
 
        /**
         * Load a document from its url.
         * 
         * @param url
         *            the URL to load
+        * @param stable
+        *            TRUE for more stable resources, FALSE when they often change
+        * 
         * @return the document
         * 
         * @throws IOException
         *             in case of I/O error
         */
-       protected Document load(String url) throws IOException {
-               return load(new URL(url));
+       protected Document load(String url, boolean stable) throws IOException {
+               return load(new URL(url), stable);
        }
 
        /**
@@ -142,13 +150,16 @@ public abstract class BasicSearchable {
         * 
         * @param url
         *            the URL to load
+        * @param stable
+        *            TRUE for more stable resources, FALSE when they often change
+        * 
         * @return the document
         * 
         * @throws IOException
         *             in case of I/O error
         */
-       protected Document load(URL url) throws IOException {
-               return DataUtil.load(Instance.getCache().open(url, support, false),
+       protected Document load(URL url, boolean stable) throws IOException {
+               return DataUtil.load(Instance.getCache().open(url, support, stable),
                                "UTF-8", url.toString());
        }