com.uwyn.rife.resources
Class ResourceFinderDirectories

java.lang.Object
  extended by com.uwyn.rife.resources.AbstractResourceFinder
      extended by com.uwyn.rife.resources.ResourceFinderDirectories
All Implemented Interfaces:
ResourceFinder

public class ResourceFinderDirectories
extends AbstractResourceFinder

This class offers ResourceFinder capabilities for resources that are available through a collection of directories.

The resources are looked up in the same order as the order in which the directories were specified. This means that if a resource is found in the first directory but it is also present in the second, only the first one will match.

Since:
1.0
Version:
$Revision: 3634 $
Author:
Geert Bevin (gbevin[remove] at uwyn dot com)
See Also:
ResourceFinder

Constructor Summary
ResourceFinderDirectories(File[] directories)
          Creates a new instance for the provided array of directories.
 
Method Summary
 String getContent(URL resource, String encoding)
          Retrieves the complete content of the provided resource.
 long getModificationTime(URL resource)
          Retrieves the modification time of the provided resource.
 URL getResource(String name)
          Retrieves the resource that corresponds to the provided name.
<ResultType>
ResultType
useStream(URL resource, InputStreamUser user)
          Returns a stream that can be used to read the contents of the provided resource.
 
Methods inherited from class com.uwyn.rife.resources.AbstractResourceFinder
getContent, getContent, getContent, getModificationTime, useStream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceFinderDirectories

public ResourceFinderDirectories(File[] directories)
Creates a new instance for the provided array of directories.

Parameters:
directories - the directories where the resources should be searched in.
Since:
1.0
Method Detail

getResource

public URL getResource(String name)
Description copied from interface: ResourceFinder
Retrieves the resource that corresponds to the provided name.

This method never throws an exception, but returns null in case of an exception.

Parameters:
name - the name of the resource to retrieve
Returns:
the URL object that corresponds to the provided name; or

null if the resource couldn't be found or if an error occurred.


useStream

public <ResultType> ResultType useStream(URL resource,
                                         InputStreamUser user)
                     throws ResourceFinderErrorException,
                            InnerClassException
Description copied from interface: ResourceFinder
Returns a stream that can be used to read the contents of the provided resource.

Parameters:
resource - the resource to retrieve
user - an instance of InputStreamUser that contains the logic that will be executed with this stream
Returns:
the return value from the useInputStream method of the provided InputStreamUser instance
Throws:
ResourceFinderErrorException - when an error occurred during the creation or opening of the stream.
InnerClassException - when errors occurs inside the InputStreamUser
See Also:
InputStreamUser, ResourceFinder.useStream(String, InputStreamUser)

getContent

public String getContent(URL resource,
                         String encoding)
                  throws ResourceFinderErrorException
Description copied from interface: ResourceFinder
Retrieves the complete content of the provided resource.

Parameters:
resource - the resource to retrieve the content from
encoding - the encoding that should be used to read the content
Returns:
a String object that contains the complete content of the resource with the provided name; or

null if the resource couldn't be found.

Throws:
ResourceFinderErrorException - when an error occurred during the retrieval of the content or when the encoding is not supported.
See Also:
ResourceFinder.getContent(String), ResourceFinder.getContent(String, String), ResourceFinder.getContent(URL)

getModificationTime

public long getModificationTime(URL resource)
                         throws ResourceFinderErrorException
Description copied from interface: ResourceFinder
Retrieves the modification time of the provided resource.

Parameters:
resource - the resource to retrieve the modification time from
Returns:
a positive long with the modification time in milliseconds; or

-1 if the resource couldn't be found.

Throws:
ResourceFinderErrorException - when an error occurred during the retrieval of the modification time.
See Also:
ResourceFinder.getModificationTime(String)


Copyright © 2001-2007 Uwyn sprl/bvba. All Rights Reserved.