Package org.apache.fop.apps
Class FOURIResolver
- java.lang.Object
-
- org.apache.fop.apps.FOURIResolver
-
- All Implemented Interfaces:
javax.xml.transform.URIResolver
public class FOURIResolver extends java.lang.Object implements javax.xml.transform.URIResolverProvides FOP specific URI resolution. This is the default URIResolverFOUserAgentwill use unless overridden.- See Also:
URIResolver
-
-
Constructor Summary
Constructors Constructor Description FOURIResolver()Default constructorFOURIResolver(boolean throwExceptions)Additional constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringcheckBaseURL(java.lang.String base)Checks if the given base URL is acceptable.javax.xml.transform.URIResolvergetCustomURIResolver()Returns the custom URI Resolver.javax.xml.transform.Sourceresolve(java.lang.String href, java.lang.String base)Called by the processor throughFOUserAgentwhen it encounters an uri in an external-graphic element.voidsetCustomURIResolver(javax.xml.transform.URIResolver resolver)Sets the custom URI Resolver.voidsetThrowExceptions(boolean throwExceptions)
-
-
-
Method Detail
-
checkBaseURL
public java.lang.String checkBaseURL(java.lang.String base) throws java.net.MalformedURLExceptionChecks if the given base URL is acceptable. It also normalizes the URL.- Parameters:
base- the base URL to check- Returns:
- the normalized URL
- Throws:
java.net.MalformedURLException- if there's a problem with a file URL
-
resolve
public javax.xml.transform.Source resolve(java.lang.String href, java.lang.String base) throws javax.xml.transform.TransformerExceptionCalled by the processor throughFOUserAgentwhen it encounters an uri in an external-graphic element. (see alsoURIResolver.resolve(String, String)This resolver will allow URLs without a scheme, i.e. it assumes 'file:' as the default scheme. It also allows relative URLs with scheme, e.g. file:../../abc.jpg which is not strictly RFC compliant as long as the scheme is the same as the scheme of the base URL. If the base URL is null a 'file:' URL referencing the current directory is used as the base URL. If the method is successful it will return a Source of typeStreamSourcewith its SystemID set to the resolved URL used to open the underlying InputStream.- Specified by:
resolvein interfacejavax.xml.transform.URIResolver- Parameters:
href- An href attribute, which may be relative or absolute.base- The base URI against which the first argument will be made absolute if the absolute URI is required.- Returns:
- A
Sourceobject, or null if the href cannot be resolved. - Throws:
javax.xml.transform.TransformerException- Never thrown by this implementation.- See Also:
URIResolver.resolve(String, String)
-
setCustomURIResolver
public void setCustomURIResolver(javax.xml.transform.URIResolver resolver)
Sets the custom URI Resolver. It is used for resolving factory-level URIs like hyphenation patterns and as backup for URI resolution performed during a rendering run.- Parameters:
resolver- the new URI resolver
-
getCustomURIResolver
public javax.xml.transform.URIResolver getCustomURIResolver()
Returns the custom URI Resolver.- Returns:
- the URI Resolver or null, if none is set
-
setThrowExceptions
public void setThrowExceptions(boolean throwExceptions)
- Parameters:
throwExceptions- Whether or not to throw exceptions on resolution error
-
-