Class BinaryResource

java.lang.Object
net.sf.saxon.resource.BinaryResource
All Implemented Interfaces:
Resource

public class BinaryResource extends Object implements Resource
A binary resource that might appear in a resource collection. Currently limited to 2G octets.
  • Field Details

    • FACTORY

      public static final ResourceFactory FACTORY
      ResourceFactory suitable for creating a BinaryResource
  • Constructor Details

    • BinaryResource

      public BinaryResource(AbstractResourceCollection.InputDetails in)
      Create a binary resource
      Parameters:
      in - details about the resource
    • BinaryResource

      public BinaryResource(String href, 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 Details

    • encode

      public static byte[] encode(String s, String encoding) throws XPathException
      Throws:
      XPathException
    • decode

      public static String decode(byte[] value, String encoding) throws XPathException
      Throws:
      XPathException
    • decode

      public static String decode(byte[] value, int offset, int len, String encoding) throws XPathException
      Throws:
      XPathException
    • error

      public static void error(String message) throws XPathException
      Throw an error
      Parameters:
      message - the error message
      Throws:
      XPathException - always
    • 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 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(InputStream in, 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() throws XPathException
      Get an XDM Item holding the contents of this resource.
      Specified by:
      getItem in interface Resource
      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 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