org.apache.xml.serializer.utils
Class SystemIDResolver

java.lang.Object
  extended by org.apache.xml.serializer.utils.SystemIDResolver

public final class SystemIDResolver
extends java.lang.Object

This class is used to resolve relative URIs and SystemID strings into absolute URIs.

This is a generic utility for resolving URIs, other than the fact that it's declared to throw TransformerException. Please see code comments for details on how resolution is performed.

This class is a copy of the one in org.apache.xml.utils. It exists to cut the serializers dependancy on that package. This class is not a public API, it is only public because it is used in org.apache.xml.serializer.


Constructor Summary
SystemIDResolver()
           
 
Method Summary
private static java.lang.String getAbsolutePathFromRelativePath(java.lang.String relativePath)
          Return an absolute path from a relative path.
static java.lang.String getAbsoluteURI(java.lang.String systemId)
          Take a SystemID string and try to turn it into a good absolute URI.
static java.lang.String getAbsoluteURI(java.lang.String urlString, java.lang.String base)
          Take a SystemID string and try to turn it into a good absolute URI.
static java.lang.String getAbsoluteURIFromRelative(java.lang.String localPath)
          Get an absolute URI from a given relative URI (local path).
static boolean isAbsolutePath(java.lang.String systemId)
          Return true if the local path is an absolute path.
static boolean isAbsoluteURI(java.lang.String systemId)
          Return true if the systemId denotes an absolute URI .
private static boolean isWindowsAbsolutePath(java.lang.String systemId)
          Return true if the local path is a Windows absolute path.
private static java.lang.String replaceChars(java.lang.String str)
          Replace spaces with "%20" and backslashes with forward slashes in the input string to generate a well-formed URI string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SystemIDResolver

public SystemIDResolver()
Method Detail

getAbsoluteURIFromRelative

public static java.lang.String getAbsoluteURIFromRelative(java.lang.String localPath)
Get an absolute URI from a given relative URI (local path).

The relative URI is a local filesystem path. The path can be absolute or relative. If it is a relative path, it is resolved relative to the system property "user.dir" if it is available; if not (i.e. in an Applet perhaps which throws SecurityException) then we just return the relative path. The space and backslash characters are also replaced to generate a good absolute URI.

Parameters:
localPath - The relative URI to resolve
Returns:
Resolved absolute URI

getAbsolutePathFromRelativePath

private static java.lang.String getAbsolutePathFromRelativePath(java.lang.String relativePath)
Return an absolute path from a relative path.

Parameters:
relativePath - A relative path
Returns:
The absolute path

isAbsoluteURI

public static boolean isAbsoluteURI(java.lang.String systemId)
Return true if the systemId denotes an absolute URI .

Parameters:
systemId - The systemId string
Returns:
true if the systemId is an an absolute URI

isAbsolutePath

public static boolean isAbsolutePath(java.lang.String systemId)
Return true if the local path is an absolute path.

Parameters:
systemId - The path string
Returns:
true if the path is absolute

isWindowsAbsolutePath

private static boolean isWindowsAbsolutePath(java.lang.String systemId)
Return true if the local path is a Windows absolute path.

Parameters:
systemId - The path string
Returns:
true if the path is a Windows absolute path

replaceChars

private static java.lang.String replaceChars(java.lang.String str)
Replace spaces with "%20" and backslashes with forward slashes in the input string to generate a well-formed URI string.

Parameters:
str - The input string
Returns:
The string after conversion

getAbsoluteURI

public static java.lang.String getAbsoluteURI(java.lang.String systemId)
Take a SystemID string and try to turn it into a good absolute URI.

Parameters:
systemId - A URI string, which may be absolute or relative.
Returns:
The resolved absolute URI

getAbsoluteURI

public static java.lang.String getAbsoluteURI(java.lang.String urlString,
                                              java.lang.String base)
                                       throws javax.xml.transform.TransformerException
Take a SystemID string and try to turn it into a good absolute URI.

Parameters:
urlString - SystemID string
base - The URI string used as the base for resolving the systemID
Returns:
The resolved absolute URI
Throws:
javax.xml.transform.TransformerException - thrown if the string can't be turned into a URI.