Package de.xima.fc.workflow
Class SupplyingResourceDescriptor
- java.lang.Object
-
- de.xima.fc.workflow.SupplyingResourceDescriptor
-
- All Implemented Interfaces:
IResourceDescriptor
,Serializable
public final class SupplyingResourceDescriptor extends Object implements IResourceDescriptor
ImplementsIResourceDescriptor
by lazily obtaining data from a supplier.- Since:
- 8.0.0
- Author:
- XIMA MEDIA GmbH
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SupplyingResourceDescriptor(URI uri, IIOSupplier<InputStream> data, Charset charset)
Creates a new resource descriptor for the given URI with the given data.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static IResourceDescriptor
fromByteArray(URI uri, IIOSupplier<byte[]> data, Charset charset)
Creates a new resource descriptor for the given URI with the given data.static IResourceDescriptor
fromString(URI uri, IIOSupplier<String> data, Charset charset)
Creates a new resource descriptor for the given URI with the given data.URI
getAbsoluteUri()
Gets the absolute URI that identifies this resource.Charset
getCharset()
InputStream
open()
String
toString()
-
-
-
Constructor Detail
-
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, passnull
.
-
-
Method Detail
-
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()
yieldsfalse
.- Specified by:
getAbsoluteUri
in interfaceIResourceDescriptor
- Returns:
- An absolute URI that identifies this resource.
-
getCharset
public Charset getCharset()
- Specified by:
getCharset
in interfaceIResourceDescriptor
- 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 interfaceIResourceDescriptor
- Returns:
- An input stream to the content of the resource.
- Throws:
IOException
- When the resource could not be opened.
-
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.
-
-