downloader: prepare offline mode
[nikiroo-utils.git] / src / be / nikiroo / fanfix / DataLoader.java
index d342580614c4a8441efcd967ad4ce37ed9c9879c..3e0e7704e8e93068d93b7454a25e7f5fffb311f1 100644 (file)
@@ -28,6 +28,7 @@ public class DataLoader {
        private Downloader downloader;
        private Downloader downloaderNoCache;
        private Cache cache;
+       private boolean offline;
 
        /**
         * Create a new {@link DataLoader} object.
@@ -69,6 +70,41 @@ public class DataLoader {
                downloaderNoCache = downloader;
                cache = new CacheMemory();
        }
+       
+       /**
+        * This {@link Downloader} is forbidden to try and connect to the network.
+        * <p>
+        * If TRUE, it will only check the cache (even in no-cache mode!).
+        * <p>
+        * Default is FALSE.
+        * 
+        * @return TRUE if offline
+        */
+       public boolean isOffline() {
+               return offline;
+       }
+       
+       /**
+        * This {@link Downloader} is forbidden to try and connect to the network.
+        * <p>
+        * If TRUE, it will only check the cache (even in no-cache mode!).
+        * <p>
+        * Default is FALSE.
+        * 
+        * @param offline TRUE for offline, FALSE for online
+        */
+       public void setOffline(boolean offline) {
+               this.offline = offline;
+               downloader.setOffline(offline);
+               downloaderNoCache.setOffline(offline);
+               
+               // If we don't, we cannot support no-cache using code in OFFLINE mode
+               if (offline) {
+                       downloaderNoCache.setCache(cache);
+               } else {
+                       downloaderNoCache.setCache(null);
+               }
+       }
 
        /**
         * The traces handler for this {@link Cache}.