Class StreamResource
- java.lang.Object
-
- com.vaadin.flow.server.AbstractStreamResource
-
- com.vaadin.flow.server.StreamResource
-
- All Implemented Interfaces:
Serializable
public class StreamResource extends AbstractStreamResource
Represents dynamically generated data.Resource URI registration is automatically handled by components that explicitly support stream resources and by
Element.setAttribute(String, AbstractStreamResource)
. In other cases, the resource must manually be registered usingStreamResourceRegistry.registerResource(AbstractStreamResource)
to get a URI from which the browser can load the contents of the resource.- Since:
- 1.0
- Author:
- Vaadin Ltd
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description StreamResource(String name, InputStreamFactory factory)
CreatesStreamResource
instance using mandatory parametersname
as a resource file name and input streamfactory
as a factory for data.StreamResource(String name, StreamResourceWriter writer)
CreatesStreamResource
instance using mandatory parametersname
as a resource file name and output streamwriter
as a data producer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ContentTypeResolver
getContentTypeResolver()
Gets the resolver which is used to lookup the content type of the resource.Optional<String>
getHeader(String name)
Gets the value for headername
set for the resource.Map<String,String>
getHeaders()
Gets the additionally configured headers for the resource.String
getName()
Get the resource name.StreamResourceWriter
getWriter()
Returns the stream resource writer.StreamResource
setContentType(String contentType)
Set content type for the resource.StreamResource
setContentTypeResolver(ContentTypeResolver resolver)
Sets the resolver which is used to lookup the content type of the resource.StreamResource
setHeader(String name, String value)
Sets the value of a generic response header.-
Methods inherited from class com.vaadin.flow.server.AbstractStreamResource
getCacheTime, getId, setCacheTime
-
-
-
-
Constructor Detail
-
StreamResource
public StreamResource(String name, StreamResourceWriter writer)
CreatesStreamResource
instance using mandatory parametersname
as a resource file name and output streamwriter
as a data producer.writer
should write data in the output stream provided as an argument to itsStreamResourceWriter.accept(OutputStream, VaadinSession)
method.name
parameter value will be used in URI (generated when resource is registered) in a way that thename
is the last segment of the path. So this is synthetic file name (not real one).- Parameters:
name
- resource file name. May not be null.writer
- data output stream consumer
-
StreamResource
public StreamResource(String name, InputStreamFactory factory)
CreatesStreamResource
instance using mandatory parametersname
as a resource file name and input streamfactory
as a factory for data.name
parameter value will be used in URI (generated when resource is registered) in a way that thename
is the last segment of the path. So this is synthetic file name (not real one).- Parameters:
name
- resource file name. May not be null.factory
- data input stream factory. May not be null.
-
-
Method Detail
-
getWriter
public StreamResourceWriter getWriter()
Returns the stream resource writer.Writer writes data in the output stream provided as an argument to its
StreamResourceWriter.accept(OutputStream, VaadinSession)
method.- Returns:
- stream resource writer
-
setContentTypeResolver
public StreamResource setContentTypeResolver(ContentTypeResolver resolver)
Sets the resolver which is used to lookup the content type of the resource.By default a resolver based on servletContext.getMimeType() is used.
- Parameters:
resolver
- content type resolver, notnull
- Returns:
- this resource
-
setContentType
public StreamResource setContentType(String contentType)
Set content type for the resource.This is a shorthand for
setContentTypeResolver(ContentTypeResolver)
with resolver which always returnscontentType
- Parameters:
contentType
- resource content type, notnull
- Returns:
- this resource
-
getContentTypeResolver
public ContentTypeResolver getContentTypeResolver()
Gets the resolver which is used to lookup the content type of the resource.- Returns:
- content type resolver
-
setHeader
public StreamResource setHeader(String name, String value)
Sets the value of a generic response header. If the header had already been set, the new value overwrites the previous one.- Parameters:
name
- a header namevalue
- value of the header- Returns:
- this resource
-
getHeader
public Optional<String> getHeader(String name)
Gets the value for headername
set for the resource.- Parameters:
name
- name of header to get value for- Returns:
- an optional with header value, or an empty optional if it has not been set
-
getHeaders
public Map<String,String> getHeaders()
Gets the additionally configured headers for the resource.This method doesn't return headers which are set via explicit setters like
setContentType(String)
andAbstractStreamResource.setCacheTime(long)
.- Returns:
- a map of headers and their values
-
getName
public String getName()
Description copied from class:AbstractStreamResource
Get the resource name.The value will be used in URI (generated when resource is registered) in a way that the
name
is the last segment of the path. So this is a synthetic name.- Specified by:
getName
in classAbstractStreamResource
- Returns:
- resource name
-
-