picview/src/com/google/android/apps/picview/request/CachedWebRequestFetcher.java
public CachedResponse<String> cachedFetch(URL url, boolean forceFetchFromWeb) {

    // Make sure we have a URL object that we can synchronize on.
    url = getSynchronizableInstance(url);

    // Synchronize per URL.
    synchronized (url) {
      String responseText = null;
      boolean fromDatabase = false;

      if (!forceFetchFromWeb) {
        // Get it from in-memory cache, if we have it.
        if (cache.containsKey(url) && cache.get(url) != null) {
          return new CachedResponse<String>(CachedResponse.FROM_MEMORY,
              cache.get(url));
        }

        // If it's not in-memory, try to load it from file system.
        CachedWebResponse response = fileSystemCache.get(url);

        if (response != null) {
          responseText = response.response;
          fromDatabase = true;
        }
      }

      // If it is also not found in the file system cache, or fetching
      // from cache was intentionally skipped, try to fetch it
      // from the network.
      if (responseText == null || forceFetchFromWeb) {
        responseText = fetchFromWeb(url);
        if (responseText != null) {
          fileSystemCache.asyncPut(url, "TODO", responseText);
        }
      }
      if (responseText != null) {
        cache.put(url, responseText);
      }
      return new CachedResponse<String>(fromDatabase ? CachedResponse.FROM_FILE
          : CachedResponse.NOT_CACHED, responseText);
    }
  }
/**
   * Performs a cached fetch. If the response is in one of the caches
   * (file-system or in-memory), this version is returned. If the response could
   * not be found in cache, it's fetched and automatically put into both caches.
   * 
   * @param url
   *          the URL to fetch
   * @param forceFetchFromWeb
   *          whether the content should be fetched from the web, regardless of
   *          whether it is present in any of the caches
   */
Performs a cached fetch. If the response is in one of the caches
(file-system or in-memory), this version is returned. If the response could
not be found in cache, it's fetched and automatically put into both caches.

@param url
the URL to fetch
@param forceFetchFromWeb
whether the content should be fetched from the web, regardless of
whether it is present in any of the caches
Performs a cached fetch . If the response is in one of the caches ( file - system or in - memory ) this version is returned . If the response could not be found in cache it ' s fetched and automatically put into both caches . @param url the URL to fetch @param forceFetchFromWeb whether the content should be fetched from the web regardless of whether it is present in any of the caches
public CachedResponse<String> cachedFetch(URL url, boolean forceFetchFromWeb) {
    url = getSynchronizableInstance(url);
    synchronized (url) {
      String responseText = null;
      boolean fromDatabase = false;
      if (!forceFetchFromWeb) {
        if (cache.containsKey(url) && cache.get(url) != null) {
          return new CachedResponse<String>(CachedResponse.FROM_MEMORY,
              cache.get(url));
        }
        CachedWebResponse response = fileSystemCache.get(url);
        if (response != null) {
          responseText = response.response;
          fromDatabase = true;
        }
      }
      if (responseText == null || forceFetchFromWeb) {
        responseText = fetchFromWeb(url);
        if (responseText != null) {
          fileSystemCache.asyncPut(url, "TODO", responseText);
        }
      }
      if (responseText != null) {
        cache.put(url, responseText);
      }
      return new CachedResponse<String>(fromDatabase ? CachedResponse.FROM_FILE
          : CachedResponse.NOT_CACHED, responseText);
    }
  }
public CachedResponse < String > cachedFetch ( URL url , boolean forceFetchFromWeb ) { url = getSynchronizableInstance ( url ) ; synchronized ( url ) { String responseText = null ; boolean fromDatabase = false ; if ( ! forceFetchFromWeb ) { if ( cache . containsKey ( url ) && cache . get ( url ) != null ) { return new CachedResponse < String > ( CachedResponse . FROM_MEMORY , cache . get ( url ) ) ; } CachedWebResponse response = fileSystemCache . get ( url ) ; if ( response != null ) { responseText = response . response ; fromDatabase = true ; } } if ( responseText == null || forceFetchFromWeb ) { responseText = fetchFromWeb ( url ) ; if ( responseText != null ) { fileSystemCache . asyncPut ( url , "TODO" , responseText ) ; } } if ( responseText != null ) { cache . put ( url , responseText ) ; } return new CachedResponse < String > ( fromDatabase ? CachedResponse . FROM_FILE : CachedResponse . NOT_CACHED , responseText ) ; } }
Performs a cached fetch.
Performs a cached fetch .
// Make sure we have a URL object that we can synchronize on. // Synchronize per URL. // Get it from in-memory cache, if we have it. // If it's not in-memory, try to load it from file system. // If it is also not found in the file system cache, or fetching // from cache was intentionally skipped, try to fetch it // from the network.