Package net.sf.saxon.resource

## Class BinaryResource

- java.lang.Object
- - net.sf.saxon.resource.BinaryResource

- All Implemented Interfaces:
    `Resource`

      public class BinaryResource
      extends java.lang.Object
      implements Resource

  A binary resource that might appear in a resource collection.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static ResourceFactory` | `FACTORY` | ResourceFactory suitable for creating a BinaryResource

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BinaryResource​(java.lang.String href, java.lang.String contentType, byte[] content)` | Create a binary resource supplying the actual content as a byte array
    `BinaryResource​(AbstractResourceCollection.InputDetails in)` | Create a binary resource

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getContentType()` | Get the media type (MIME type) of the resource if known, for example "image/jpeg".
    `byte[]` | `getData()` | Get the content of the resource as an array of bytes
    `Base64BinaryValue` | `getItem​(XPathContext context)` | Get an XDM Item holding the contents of this resource.
    `java.lang.String` | `getResourceURI()` | Get the URI of the resource
    `static byte[]` | `readBinaryFromStream​(java.io.InputStream in, java.lang.String path)` | Utility method to construct an array of bytes from the content of an InputStream
    `void` | `setData​(byte[] data)` | Set the content of the resource as an array of bytes

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FACTORY

          public static final ResourceFactory FACTORY

      ResourceFactory suitable for creating a BinaryResource

  - ### Constructor Detail

    - #### BinaryResource

          public BinaryResource​(AbstractResourceCollection.InputDetails in)

      Create a binary resource
      Parameters:
        `in` - details about the resource

    - #### BinaryResource

          public BinaryResource​(java.lang.String href,
                                java.lang.String contentType,
                                byte[] content)

      Create a binary resource supplying the actual content as a byte array
      Parameters:
        `href` - the URI of the resource
        `contentType` - the media type
        `content` - the actual content as a byte array

  - ### Method Detail

    - #### setData

          public void setData​(byte[] data)

      Set the content of the resource as an array of bytes
      Parameters:
        `data` - the content of the resource

    - #### getData

          public byte[] getData()

      Get the content of the resource as an array of bytes
      Returns:
        the content (if it has been set using setData())

    - #### getResourceURI

          public java.lang.String getResourceURI()

      Get the URI of the resource
      Specified by:
        `getResourceURI` in interface `Resource`
      Returns:
        the URI of the resource

    - #### readBinaryFromStream

          public static byte[] readBinaryFromStream​(java.io.InputStream in,
                                                    java.lang.String path)
                                             throws XPathException

      Utility method to construct an array of bytes from the content of an InputStream
      Parameters:
        `in` - the input stream. The method consumes the input stream but does not close it.
        `path` - file name or URI used only for diagnostics
      Returns:
        byte array representing the content of the InputStream
      Throws:
        `XPathException` - if a failure occurs obtaining a connection or reading the stream

    - #### getItem

          public Base64BinaryValue getItem​(XPathContext context)
                                    throws XPathException

      Get an XDM Item holding the contents of this resource.
      Specified by:
        `getItem` in interface `Resource`
      Parameters:
        `context` - the XPath evaluation context
      Returns:
        an item holding the contents of the resource. For a binary resource the value will always be a `Base64BinaryValue`. This does not mean that the content is actually encoded in Base64 internally; rather it means that when converted to a string, the content is presented in Base64 encoding.
      Throws:
        `XPathException` - if a failure occurs materializing the resource

    - #### getContentType

          public java.lang.String getContentType()

      Get the media type (MIME type) of the resource if known, for example "image/jpeg".
      Specified by:
        `getContentType` in interface `Resource`
      Returns:
        the media type if known; otherwise null