Class ResourceResolver

java.lang.Object
org.nuiton.util.ResourceResolver
All Implemented Interfaces:
URIResolver
Direct Known Subclasses:
FasterCachedResourceResolver

public class ResourceResolver extends Object implements URIResolver

ResourceResolver is a URIResolver for XSL transformation.

Its purpose is to catch the XSL document(...) function call and return a valid data source only if the wanted resource is present in the project resources.

The main goal of ResourceResolver is to retrieve datasources locally, if the wanted resource is not present in project resource then null will be returned.

The resolve function search for the file part of href parameter:
  • href: http://argouml.org/profiles/uml14/default-uml14.xmi
  • file part: default-uml14.xmi.
The resource is searched this way:
  • eg: [file part extension]/[file part]
  • eg: xmi/default-uml14.xmi
You should assign this ResourceResolver on Transformer but not on TransformerFactory.
Author:
chorlet
  • Field Details

    • sourceCache

      protected static final SortedMap<String,Source> sourceCache
      Shared Cache to not search in full classpath at each request.
    • unresolvedCache

      protected static final Set<String> unresolvedCache
      Shared Cache of not local resources
    • HREF_PATTERN

      public static final Pattern HREF_PATTERN
      le pattern de detection d'une uri
    • base

      protected String base
    • verbose

      protected boolean verbose
      le niveau de verbosite
    • cl

      protected ClassLoader cl
      le classe loader utilise pour recuperer les resources
  • Constructor Details

    • ResourceResolver

      public ResourceResolver()
    • ResourceResolver

      public ResourceResolver(String base)
  • Method Details

    • clearCache

      public static void clearCache()
      Pour vider le cache partage.
    • resolve

      public Source resolve(String href, String base)
      Resolve href on local resource.
      Specified by:
      resolve in interface URIResolver
      Returns:
      null if local resource not found
    • setVerbose

      public void setVerbose(boolean verbose)
    • setCl

      public void setCl(ClassLoader cl)
    • findHrefSource

      protected Source findHrefSource(String path)
    • findRelativeSource

      protected Source findRelativeSource(String path)