org.springframework.core.io
Class DescriptiveResource

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

public class DescriptiveResource
extends AbstractResource

Simple Resource implementation that holds a resource description but does not point to an actually readable resource.

To be used as placeholder if a Resource argument is expected by an API but not necessarily used for actual reading.

Since:
1.2.6
Author:
Juergen Hoeller

Constructor Summary
DescriptiveResource(String description)
          Create a new DescriptiveResource.
 
Method Summary
 boolean equals(Object obj)
          This implementation compares the underlying description String.
 boolean exists()
          This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened.
 String getDescription()
          Return a description for this resource, to be used for error output when working with the resource.
 InputStream getInputStream()
          Return an InputStream.
 int hashCode()
          This implementation returns the hash code of the underlying description String.
 boolean isReadable()
          This implementation always returns true.
 
Methods inherited from class org.springframework.core.io.AbstractResource
contentLength, createRelative, getFile, getFileForLastModifiedCheck, getFilename, getURI, getURL, isOpen, lastModified, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DescriptiveResource

public DescriptiveResource(String description)
Create a new DescriptiveResource.

Parameters:
description - the resource description
Method Detail

exists

public boolean exists()
Description copied from class: AbstractResource
This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened. This will cover both directories and content resources.

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

isReadable

public boolean isReadable()
Description copied from class: AbstractResource
This implementation always returns true.

Specified by:
isReadable in interface Resource
Overrides:
isReadable in class AbstractResource
See Also:
InputStreamSource.getInputStream()

getInputStream

public InputStream getInputStream()
                           throws IOException
Description copied from interface: InputStreamSource
Return an InputStream.

It is expected that each call creates a fresh stream.

This requirement is particularly important when you consider an API such as JavaMail, which needs to be able to read the stream multiple times when creating mail attachments. For such a use case, it is required that each getInputStream() call returns a fresh stream.

Throws:
IOException - if the stream could not be opened
See Also:
MimeMessageHelper.addAttachment(String, InputStreamSource)

getDescription

public String getDescription()
Description copied from interface: Resource
Return a description for this resource, to be used for error output when working with the resource.

Implementations are also encouraged to return this value from their toString method.

See Also:
Object.toString()

equals

public boolean equals(Object obj)
This implementation compares the underlying description String.

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

hashCode

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

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