org.extex.resource
Class ClasspathFinder

java.lang.Object
  extended by org.extex.resource.AbstractFinder
      extended by org.extex.resource.ClasspathFinder
All Implemented Interfaces:
LogEnabled, ResourceFinder

public class ClasspathFinder
extends AbstractFinder

This resource finder utilizes the Java class finder to search in the class path. Thus it is possible to find resources inside a jar archive.

Configuration

The resource finder can be configured to influence its actions. The following example shows a configuration for a resource finder:
 <Finder class="org.extex.util.resource.ClasspathFinder"
         trace="false"
         default="default">
   <tex>
     <extension></extension>
     <extension>.tex</extension>
   </tex>
   <fmt>
     <extension></extension>
     <extension>.fmt</extension>
   </fmt>
   <default>
     <extension></extension>
   </default>
 </Finder>
 

Whenever a resource is sought its type is used to find the appropriate parameters for the search. If the sub-configuration with the name of the type exists then this sub-configuration is used. For instance if the resource tex with the type fmt is sought then the sub-configuration fmt determines how to find this file.

If no sub-configuration of the given type is present then the attribute default is used to find the default sub-configuration. In the example given above this default configuration is called default. Nevertheless it would also be possible to point the default configuration to another existing configuration. The attribute default is mandatory.

Each sub-configuration takes the tag extension in arbitrary number. extension contains the extension appended after the resource name.

All combinations of resource name and extension are tried in turn. If one combination leads to a readable input stream then it is used.

The attribute trace can be used to force a tracing of the actions in the log file. The tracing is performed only if a logger is present when needed. The tracing flag can be overwritten at run-time. The attribute trace is optional.

Version:
$Revision: 6871 $
Author:
Gerd Neugebauer

Field Summary
 
Fields inherited from class org.extex.resource.AbstractFinder
ATTR_DEFAULT, ATTR_SKIP, ATTR_TRACE, EXTENSION_TAG
 
Constructor Summary
ClasspathFinder(Configuration configuration)
          Creates a new object.
 
Method Summary
 NamedInputStream findResource(java.lang.String name, java.lang.String type)
          Find a resource which can be used for reading.
 
Methods inherited from class org.extex.resource.AbstractFinder
enableLogging, enableTracing, getConfiguration, trace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClasspathFinder

public ClasspathFinder(Configuration configuration)
                throws ConfigurationMissingException
Creates a new object.

Parameters:
configuration - the encapsulated configuration object
Throws:
ConfigurationMissingException - in case of an error
Method Detail

findResource

public NamedInputStream findResource(java.lang.String name,
                                     java.lang.String type)
                              throws ConfigurationException
Description copied from interface: ResourceFinder
Find a resource which can be used for reading. If the search fails then null is returned.

Parameters:
name - the base name of the resource
type - the type, i.e. the extension
Returns:
the file or null if none could be found
Throws:
ConfigurationException - in case of an exception
See Also:
ResourceFinder.findResource( java.lang.String, java.lang.String)