Class ResourceResolver

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

public class ResourceResolver
extends java.lang.Object
implements javax.xml.transform.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 Summary

    Fields 
    Modifier and Type Field Description
    protected java.lang.String base  
    protected java.lang.ClassLoader cl
    le classe loader utilise pour recuperer les resources
    static java.util.regex.Pattern HREF_PATTERN
    le pattern de detection d'une uri
    protected static java.util.SortedMap<java.lang.String,​javax.xml.transform.Source> sourceCache
    Shared Cache to not search in full classpath at each request.
    protected static java.util.Set<java.lang.String> unresolvedCache
    Shared Cache of not local resources
    protected boolean verbose
    le niveau de verbosite
  • Constructor Summary

    Constructors 
    Constructor Description
    ResourceResolver()  
    ResourceResolver​(java.lang.String base)  
  • Method Summary

    Modifier and Type Method Description
    static void clearCache()
    Pour vider le cache partage.
    protected javax.xml.transform.Source findHrefSource​(java.lang.String path)  
    protected javax.xml.transform.Source findRelativeSource​(java.lang.String path)  
    javax.xml.transform.Source resolve​(java.lang.String href, java.lang.String base)
    Resolve href on local resource.
    void setCl​(java.lang.ClassLoader cl)  
    void setVerbose​(boolean verbose)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • sourceCache

      protected static final java.util.SortedMap<java.lang.String,​javax.xml.transform.Source> sourceCache
      Shared Cache to not search in full classpath at each request.
    • unresolvedCache

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

      public static final java.util.regex.Pattern HREF_PATTERN
      le pattern de detection d'une uri
    • base

      protected java.lang.String base
    • verbose

      protected boolean verbose
      le niveau de verbosite
    • cl

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

  • Method Details

    • clearCache

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

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

      public void setVerbose​(boolean verbose)
    • setCl

      public void setCl​(java.lang.ClassLoader cl)
    • findHrefSource

      protected javax.xml.transform.Source findHrefSource​(java.lang.String path)
    • findRelativeSource

      protected javax.xml.transform.Source findRelativeSource​(java.lang.String path)