Class ParsingLoadable<T>

    • Field Detail

      • loadTaskId

        public final long loadTaskId
        Identifies the load task for this loadable.
      • dataSpec

        public final DataSpec dataSpec
        The DataSpec that defines the data to be loaded.
      • type

        public final int type
        The type of the data. One of the DATA_TYPE_* constants defined in C. For reporting only.
    • Constructor Detail

      • ParsingLoadable

        public ParsingLoadable​(DataSource dataSource,
                               Uri uri,
                               int type,
                               ParsingLoadable.Parser<? extends T> parser)
        Parameters:
        dataSource - A DataSource to use when loading the data.
        uri - The Uri from which the object should be loaded.
        type - See type.
        parser - Parses the object from the response.
      • ParsingLoadable

        public ParsingLoadable​(DataSource dataSource,
                               DataSpec dataSpec,
                               int type,
                               ParsingLoadable.Parser<? extends T> parser)
        Parameters:
        dataSource - A DataSource to use when loading the data.
        dataSpec - The DataSpec from which the object should be loaded.
        type - See type.
        parser - Parses the object from the response.
    • Method Detail

      • load

        public static <T> T load​(DataSource dataSource,
                                 ParsingLoadable.Parser<? extends T> parser,
                                 Uri uri,
                                 int type)
                          throws IOException
        Loads a single parsable object.
        Parameters:
        dataSource - The DataSource through which the object should be read.
        parser - The ParsingLoadable.Parser to parse the object from the response.
        uri - The Uri of the object to read.
        type - The type of the data. One of the CDATA_TYPE_* constants.
        Returns:
        The parsed object
        Throws:
        IOException - Thrown if there is an error while loading or parsing.
      • load

        public static <T> T load​(DataSource dataSource,
                                 ParsingLoadable.Parser<? extends T> parser,
                                 DataSpec dataSpec,
                                 int type)
                          throws IOException
        Loads a single parsable object.
        Parameters:
        dataSource - The DataSource through which the object should be read.
        parser - The ParsingLoadable.Parser to parse the object from the response.
        dataSpec - The DataSpec of the object to read.
        type - The type of the data. One of the CDATA_TYPE_* constants.
        Returns:
        The parsed object
        Throws:
        IOException - Thrown if there is an error while loading or parsing.
      • getResult

        @Nullable
        public final T getResult()
        Returns the loaded object, or null if an object has not been loaded.
      • bytesLoaded

        public long bytesLoaded()
        Returns the number of bytes loaded. In the case that the network response was compressed, the value returned is the size of the data after decompression. Must only be called after the load completed, failed, or was canceled.
      • getUri

        public Uri getUri()
        Returns the Uri from which data was read. If redirection occurred, this is the redirected uri. Must only be called after the load completed, failed, or was canceled.
      • getResponseHeaders

        public Map<String,​List<String>> getResponseHeaders()
        Returns the response headers associated with the load. Must only be called after the load completed, failed, or was canceled.
      • cancelLoad

        public final void cancelLoad()
        Description copied from interface: Loader.Loadable
        Cancels the load.

        Loadable implementations should ensure that a currently executing Loader.Loadable.load() call will exit reasonably quickly after this method is called. The Loader.Loadable.load() call may exit either by returning or by throwing an IOException.

        If there is a currently executing Loader.Loadable.load() call, then the thread on which that call is being made will be interrupted immediately after the call to this method. Hence implementations do not need to (and should not attempt to) interrupt the loading thread themselves.

        Although the loading thread will be interrupted, Loadable implementations should not use the interrupted status of the loading thread in Loader.Loadable.load() to determine whether the load has been canceled. This approach is not robust [Internal ref: b/79223737]. Instead, implementations should use their own flag to signal cancelation (for example, using AtomicBoolean).

        Specified by:
        cancelLoad in interface Loader.Loadable