Package 

Class RoutingFetcher

  • All Implemented Interfaces:
    org.readium.r2.shared.fetcher.Fetcher , org.readium.r2.shared.util.SuspendingCloseable

    
    public final class RoutingFetcher
     implements Fetcher
                        

    Routes requests to child fetchers, depending on a provided predicate.

    This can be used for example to serve a publication containing both local and remote resources, and more generally to concatenate different content sources.

    The routes will be tested in the given order.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      public final class RoutingFetcher.Route

      Holds a child fetcher and the predicate used to determine if it can answer a request.

      The default value for accepts means that the fetcher will accept any link.

    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      List<Link> links() Known resources available in the medium, such as file paths on the file system or entries in a ZIP archive.
      Resource get(Link link) Returns the Resource at the given link's HREF.
      Unit close() Closes this object and releases any resources associated with it.
      • Methods inherited from class org.readium.r2.shared.fetcher.Fetcher

        get
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • links

         List<Link> links()

        Known resources available in the medium, such as file paths on the file system or entries in a ZIP archive. This list is not exhaustive, and additional unknown resources might be reachable.

        If the medium has an inherent resource order, it should be followed. Otherwise, HREFs are sorted alphabetically.

      • get

         Resource get(Link link)

        Returns the Resource at the given link's HREF.

        A Resource is always returned, since for some cases we can't know if it exists before actually fetching it, such as HTTP. Therefore, errors are handled at the Resource level.

      • close

         Unit close()

        Closes this object and releases any resources associated with it. If the object is already closed then invoking this method has no effect.