Spring Framework

org.springframework.core.io
Class InputStreamResource

java.lang.Object
  extended by org.springframework.core.io.AbstractResource
      extended by org.springframework.core.io.InputStreamResource
All Implemented Interfaces:
InputStreamSource, Resource

public class InputStreamResource
extends AbstractResource

Resource implementation for a given InputStream. Should only be used if no specific Resource implementation is applicable. In particular, prefer ByteArrayResource or any of the file-based Resource implementations where possible.

In contrast to other Resource implementations, this is a descriptor for an already opened resource - therefore returning "true" from isOpen(). Do not use it if you need to keep the resource descriptor somewhere, or if you need to read a stream multiple times.

Since:
28.12.2003
Author:
Juergen Hoeller
See Also:
ByteArrayResource, ClassPathResource, FileSystemResource, UrlResource

Constructor Summary
InputStreamResource(java.io.InputStream inputStream)
          Create a new InputStreamResource.
InputStreamResource(java.io.InputStream inputStream, java.lang.String description)
          Create a new InputStreamResource.
 
Method Summary
 boolean equals(java.lang.Object obj)
          This implementation compares the underlying InputStream.
 boolean exists()
          This implementation always returns true.
 java.lang.String getDescription()
          This implementation returns the passed-in description, if any.
 java.io.InputStream getInputStream()
          This implementation throws IllegalStateException if attempting to read the underlying stream multiple times.
 int hashCode()
          This implementation returns the hash code of the underlying InputStream.
 boolean isOpen()
          This implementation always returns true.
 
Methods inherited from class org.springframework.core.io.AbstractResource
contentLength, createRelative, getFile, getFileForLastModifiedCheck, getFilename, getURI, getURL, isReadable, lastModified, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InputStreamResource

public InputStreamResource(java.io.InputStream inputStream)
Create a new InputStreamResource.

Parameters:
inputStream - the InputStream to use

InputStreamResource

public InputStreamResource(java.io.InputStream inputStream,
                           java.lang.String description)
Create a new InputStreamResource.

Parameters:
inputStream - the InputStream to use
description - where the InputStream comes from
Method Detail

exists

public boolean exists()
This implementation always returns true.

Specified by:
exists in interface Resource
Overrides:
exists in class AbstractResource

isOpen

public boolean isOpen()
This implementation always returns true.

Specified by:
isOpen in interface Resource
Overrides:
isOpen in class AbstractResource

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException,
                                          java.lang.IllegalStateException
This implementation throws IllegalStateException if attempting to read the underlying stream multiple times.

Returns:
the input stream for the underlying resource (must not be null).
Throws:
java.io.IOException - if the stream could not be opened
java.lang.IllegalStateException
See Also:
MimeMessageHelper.addAttachment(String, InputStreamSource)

getDescription

public java.lang.String getDescription()
This implementation returns the passed-in description, if any.

See Also:
Object.toString()

equals

public boolean equals(java.lang.Object obj)
This implementation compares the underlying InputStream.

Overrides:
equals in class AbstractResource
See Also:
Resource.getDescription()

hashCode

public int hashCode()
This implementation returns the hash code of the underlying InputStream.

Overrides:
hashCode in class AbstractResource
See Also:
Resource.getDescription()

Spring Framework