fop 1.1

## 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.URIResolver

Provides FOP specific URI resolution. This is the default URIResolver `FOUserAgent` will use unless overridden.

See Also:
  `URIResolver`

Constructor Summary
`FOURIResolver()` Default constructor
`FOURIResolver(boolean throwExceptions)` Additional constructor

Method Summary
`protected void` `applyHttpBasicAuthentication(java.net.URLConnection connection, java.lang.String username, java.lang.String password)` This is a convenience method for users who want to override updateURLConnection for HTTP basic authentication.
`java.lang.String` `checkBaseURL(java.lang.String base)` Checks if the given base URL is acceptable.
`javax.xml.transform.URIResolver` `getCustomURIResolver()` Returns the custom URI Resolver.
`javax.xml.transform.Source` `resolve(java.lang.String href, java.lang.String base)` Called by the processor through `FOUserAgent` when it encounters an uri in an external-graphic element.
`void` `setCustomURIResolver(javax.xml.transform.URIResolver resolver)` Sets the custom URI Resolver.
`void` `setThrowExceptions(boolean throwExceptions)`
`protected void` `updateURLConnection(java.net.URLConnection connection, java.lang.String href)` This method allows you to set special values on a URLConnection just before the connect() method is called.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FOURIResolver

    public FOURIResolver()

  Default constructor

### FOURIResolver

    public FOURIResolver(boolean throwExceptions)

  Additional constructor

  Parameters:
    `throwExceptions` - true if exceptions are to be thrown if the URIs cannot be resolved.

Method Detail

### checkBaseURL

    public java.lang.String checkBaseURL(java.lang.String base)
                                  throws java.net.MalformedURLException

  Checks 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.TransformerException

  Called by the processor through `FOUserAgent` when it encounters an uri in an external-graphic element. (see also `URIResolver.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 type `StreamSource` with its SystemID set to the resolved URL used to open the underlying InputStream.

  Specified by:
    `resolve` in interface `javax.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 `Source` object, or null if the href cannot be resolved.
  Throws:
    `javax.xml.transform.TransformerException` - Never thrown by this implementation.
  See Also:
    `URIResolver.resolve(String, String)`

### updateURLConnection

    protected void updateURLConnection(java.net.URLConnection connection,
                                       java.lang.String href)

  This method allows you to set special values on a URLConnection just before the connect() method is called. Subclass FOURIResolver and override this method to do things like adding the user name and password for HTTP basic authentication.

  Parameters:
    `connection` - the URLConnection instance
    `href` - the original URI

### applyHttpBasicAuthentication

    protected void applyHttpBasicAuthentication(java.net.URLConnection connection,
                                                java.lang.String username,
                                                java.lang.String password)

  This is a convenience method for users who want to override updateURLConnection for HTTP basic authentication. Simply call it using the right username and password.

  Parameters:
    `connection` - the URLConnection to set up for HTTP basic authentication
    `username` - the username
    `password` - the password

### 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

fop 1.1

Copyright 1999-2012 The Apache Software Foundation. All Rights Reserved.