Class SupplyingResourceDescriptor

java.lang.Object
de.xima.fc.workflow.SupplyingResourceDescriptor
All Implemented Interfaces:
IResourceDescriptor, Serializable

public final class SupplyingResourceDescriptor extends Object implements IResourceDescriptor
Implements IResourceDescriptor by lazily obtaining data from a supplier.
Since:
8.0.0
Author:
XIMA MEDIA GmbH
See Also:
  • Constructor Details

    • SupplyingResourceDescriptor

      public SupplyingResourceDescriptor(URI uri, IIOSupplier<InputStream> data, Charset charset)
      Creates a new resource descriptor for the given URI with the given data.
      Parameters:
      uri - URI of the resource.
      data - Data of the resource.
      charset - Charset for plain text files. For binary files, pass null.
  • Method Details

    • getAbsoluteUri

      public URI getAbsoluteUri()
      Description copied from interface: IResourceDescriptor
      Gets the absolute URI that identifies this resource. The URI should be unique for each resource. If there are different versions of the same resource, they should have different URIs, e.g. by including a version number in the URI. The URI is not used to access the binary data, but may be used e.g. for caching purposes.

      The URI must be unique globally, i.e. also across different plugins. It is recommended to use a URI scheme that is unlikely to be used by other plugins, e.g. by including the Maven group and artifact ID.

      It is an error for this method to return a URI where URI.isAbsolute() yields false.

      Specified by:
      getAbsoluteUri in interface IResourceDescriptor
      Returns:
      An absolute URI that identifies this resource.
    • getCharset

      public Charset getCharset()
      Specified by:
      getCharset in interface IResourceDescriptor
      Returns:
      When this resource is a plain text resource: the charset or encoding of the text. Defaults to UTF_8.
    • open

      public InputStream open() throws IOException
      Specified by:
      open in interface IResourceDescriptor
      Returns:
      An input stream to the content of the resource.
      Throws:
      IOException - When the resource could not be opened.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • fromString

      public static IResourceDescriptor fromString(URI uri, IIOSupplier<String> data, Charset charset)
      Creates a new resource descriptor for the given URI with the given data.
      Parameters:
      uri - URI of the resource.
      data - Data of the resource.
      charset - Encoding to use for reading the string's bytes.
      Returns:
      A resource descriptor for the given data.
    • fromByteArray

      public static IResourceDescriptor fromByteArray(URI uri, IIOSupplier<byte[]> data, Charset charset)
      Creates a new resource descriptor for the given URI with the given data.
      Parameters:
      uri - URI of the resource.
      data - Data of the resource.
      charset - Encoding of the string represented by the supplied bytes.
      Returns:
      A resource descriptor for the given data.