Package org.pentaho.reporting.libraries.resourceloader

## Interface ResourceData

- All Known Subinterfaces:
    `ResourceBundleData`
  All Known Implementing Classes:
    `AbstractResourceData`, `CachingResourceBundleData`, `CachingResourceData`, `ClassloaderResourceData`, `FileResourceData`, `RawResourceData`, `URLResourceData`, `ZipResourceData`

      public interface ResourceData

  A resource data object encapsulates the raw data of an resource at a given point in the past. Any change to the resource increases the version number. Version numbers are not needed to be checked regulary, but must be checked on each call to 'getVersion()'. This definitly does *not* solve the problem of concurrent modifications; if you need to be sure that the resource has not been altered between the last call to 'getVersion' and 'getResource..' external locking mechanism have to be implemented.
  Author:
    Thomas Morgner

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CONTENT_LENGTH` |
    `static java.lang.String` | `CONTENT_TYPE` |
    `static java.lang.String` | `FILENAME` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Object` | `getAttribute​(java.lang.String key)` |
    `ResourceKey` | `getKey()` |
    `long` | `getLength()` |
    `byte[]` | `getResource​(ResourceManager caller)` | This is dangerous, especially if the resource is large.
    `int` | `getResource​(ResourceManager caller, byte[] target, long offset, int length)` | Tries to read data into the given byte-array.
    `java.io.InputStream` | `getResourceAsStream​(ResourceManager caller)` |
    `long` | `getVersion​(ResourceManager caller)` |

- - ### Field Detail

    - #### CONTENT_LENGTH

          static final java.lang.String CONTENT_LENGTH

      See Also:
        Constant Field Values

    - #### CONTENT_TYPE

          static final java.lang.String CONTENT_TYPE

      See Also:
        Constant Field Values

    - #### FILENAME

          static final java.lang.String FILENAME

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getResourceAsStream

          java.io.InputStream getResourceAsStream​(ResourceManager caller)
                                           throws ResourceLoadingException

      Throws:
        `ResourceLoadingException`

    - #### getResource

          byte[] getResource​(ResourceManager caller)
                      throws ResourceLoadingException

      This is dangerous, especially if the resource is large.
      Parameters:
        `caller` -
      Returns:
      Throws:
        `ResourceLoadingException`

    - #### getResource

          int getResource​(ResourceManager caller,
                          byte[] target,
                          long offset,
                          int length)
                   throws ResourceLoadingException

      Tries to read data into the given byte-array.
      Parameters:
        `caller` -
        `target` -
        `offset` -
        `length` -
      Returns:
        the number of bytes read or -1 if no more data can be read.
      Throws:
        `ResourceLoadingException`

    - #### getLength

          long getLength()

    - #### getAttribute

          java.lang.Object getAttribute​(java.lang.String key)

    - #### getKey

          ResourceKey getKey()

    - #### getVersion

          long getVersion​(ResourceManager caller)
                   throws ResourceLoadingException

      Throws:
        `ResourceLoadingException`