Class 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 Detail

      • FACTORY

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

      • 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 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 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