Interface Loader<K,V>

All Known Implementing Classes:
AbstractLoader, ContentLoader

public interface Loader<K,V>
A loader that could load a resource to another format. It is mainly designed to work with ResourceCache.
Author:
tomyeh
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
    Represents the more information about an object loaded by load(K).
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Returns the last modified time, or -1 if reload is required or not exists.
    load(K src)
    Loads the resource.
    boolean
    shallCheck(K src, long expiredMillis)
    Returns whether to call getLastModified(K).
  • Method Details

    • shallCheck

      boolean shallCheck(K src, long expiredMillis)
      Returns whether to call getLastModified(K). If false, it assumes the current cached content is up-to-date.
      Parameters:
      expiredMillis - how many milli-seconds are expired after the last check. In most cases, just return true if expiredMillis > 0
    • getLastModified

      long getLastModified(K src)
      Returns the last modified time, or -1 if reload is required or not exists.
    • load

      V load(K src) throws Exception
      Loads the resource.

      The returned resource could be anything. It will be returned by ResourceCache.get(java.lang.Object). However, if you want to have more control (e.g., whether to cache), you can return an instance of Loader.Resource. Then, the return value of ResourceCache.get(java.lang.Object) will be Loader.Resource.resource.

      Returns:
      null if not found
      Throws:
      Exception - you might throw any exception which will be passed back to the caller of ResourceCache.get(java.lang.Object)