Package spark.resource
Class ClassPathResource
- java.lang.Object
-
- spark.resource.AbstractResource
-
- spark.resource.AbstractFileResolvingResource
-
- spark.resource.ClassPathResource
-
- All Implemented Interfaces:
InputStreamResource
,Resource
public class ClassPathResource extends AbstractFileResolvingResource
Resource
implementation for class path resources. Uses either a given ClassLoader or a given Class for loading resources.Supports resolution as
java.io.File
if the class path resource resides in the file system, but not for resources in a JAR. Always supports resolution as URL.- See Also:
ClassLoader.getResourceAsStream(String)
,Code copied from Spring source. Modifications made (mostly removal of methods) by Per Wendel.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ClassLoader
classLoader
private java.lang.Class<?>
clazz
private java.lang.String
path
-
Constructor Summary
Constructors Modifier Constructor Description ClassPathResource(java.lang.String path)
Create a new ClassPathResource for ClassLoader usage.ClassPathResource(java.lang.String path, java.lang.ClassLoader classLoader)
Create a new ClassPathResource for ClassLoader usage.protected
ClassPathResource(java.lang.String path, java.lang.ClassLoader classLoader, java.lang.Class<?> clazz)
Create a new ClassPathResource with optional ClassLoader and Class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Resource
createRelative(java.lang.String relativePath)
This implementation creates a ClassPathResource, applying the given path relative to the path of the underlying resource of this descriptor.boolean
equals(java.lang.Object obj)
This implementation compares the underlying class path locations.boolean
exists()
This implementation checks for the resolution of a resource URL.java.lang.String
getDescription()
This implementation returns a description that includes the class path location.java.lang.String
getFilename()
This implementation returns the name of the file that this class path resource refers to.java.io.InputStream
getInputStream()
This implementation opens an InputStream for the given class path resource.java.lang.String
getPath()
Return the path for this resource (as resource path within the class path).java.net.URL
getURL()
This implementation returns a URL for the underlying class path resource.int
hashCode()
This implementation returns the hash code of the underlying class path location.private static boolean
isInvalidPath(java.lang.String path)
private static boolean
isValid(java.lang.String path)
-
Methods inherited from class spark.resource.AbstractFileResolvingResource
contentLength, customizeConnection, customizeConnection, getFile, getFileForLastModifiedCheck, isReadable, lastModified
-
Methods inherited from class spark.resource.AbstractResource
getURI, isOpen, toString
-
-
-
-
Constructor Detail
-
ClassPathResource
public ClassPathResource(java.lang.String path)
Create a new ClassPathResource for ClassLoader usage. A leading slash will be removed, as the ClassLoader resource access methods will not accept it.The thread context class loader will be used for loading the resource.
- Parameters:
path
- the absolute path within the class path- See Also:
ClassLoader.getResourceAsStream(String)
,ClassUtils.getDefaultClassLoader()
-
ClassPathResource
public ClassPathResource(java.lang.String path, java.lang.ClassLoader classLoader)
Create a new ClassPathResource for ClassLoader usage. A leading slash will be removed, as the ClassLoader resource access methods will not accept it.- Parameters:
path
- the absolute path within the classpathclassLoader
- the class loader to load the resource with, ornull
for the thread context class loader- See Also:
ClassLoader.getResourceAsStream(String)
-
ClassPathResource
protected ClassPathResource(java.lang.String path, java.lang.ClassLoader classLoader, java.lang.Class<?> clazz)
Create a new ClassPathResource with optional ClassLoader and Class. Only for internal usage.- Parameters:
path
- relative or absolute path within the classpathclassLoader
- the class loader to load the resource with, if anyclazz
- the class to load resources with, if any
-
-
Method Detail
-
isValid
private static boolean isValid(java.lang.String path)
-
isInvalidPath
private static boolean isInvalidPath(java.lang.String path)
-
getPath
public final java.lang.String getPath()
Return the path for this resource (as resource path within the class path).- Returns:
- the path
-
exists
public boolean exists()
This implementation checks for the resolution of a resource URL.- Specified by:
exists
in interfaceResource
- Overrides:
exists
in classAbstractFileResolvingResource
- Returns:
- if exists.
- See Also:
ClassLoader.getResource(String)
,Class.getResource(String)
-
getInputStream
public java.io.InputStream getInputStream() throws java.io.IOException
This implementation opens an InputStream for the given class path resource.- Returns:
- the input stream.
- Throws:
java.io.IOException
- if the stream could not be opened- See Also:
ClassLoader.getResourceAsStream(String)
,Class.getResourceAsStream(String)
-
getURL
public java.net.URL getURL() throws java.io.IOException
This implementation returns a URL for the underlying class path resource.- Specified by:
getURL
in interfaceResource
- Overrides:
getURL
in classAbstractResource
- Returns:
- the url.
- Throws:
java.io.IOException
- if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor- See Also:
ClassLoader.getResource(String)
,Class.getResource(String)
-
createRelative
public Resource createRelative(java.lang.String relativePath)
This implementation creates a ClassPathResource, applying the given path relative to the path of the underlying resource of this descriptor.- Specified by:
createRelative
in interfaceResource
- Overrides:
createRelative
in classAbstractResource
- Parameters:
relativePath
- the relative path (relative to this resource)- Returns:
- the resource.
- See Also:
StringUtils.applyRelativePath(String, String)
-
getFilename
public java.lang.String getFilename()
This implementation returns the name of the file that this class path resource refers to.- Specified by:
getFilename
in interfaceResource
- Overrides:
getFilename
in classAbstractResource
- Returns:
- the file name.
- See Also:
StringUtils.getFilename(String)
-
getDescription
public java.lang.String getDescription()
This implementation returns a description that includes the class path location.- Returns:
- the description.
- See Also:
Object.toString()
-
equals
public boolean equals(java.lang.Object obj)
This implementation compares the underlying class path locations.- Overrides:
equals
in classAbstractResource
- Returns:
- if equals.
- See Also:
Resource.getDescription()
-
hashCode
public int hashCode()
This implementation returns the hash code of the underlying class path location.- Overrides:
hashCode
in classAbstractResource
- Returns:
- the hash code.
- See Also:
Resource.getDescription()
-
-