Class 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 Detail

      • HREF_PATTERN

        public static final Pattern HREF_PATTERN
        le pattern de detection d'une uri
      • 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
      • verbose

        protected boolean verbose
        le niveau de verbosite
      • cl

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

      • ResourceResolver

        public ResourceResolver()
      • ResourceResolver

        public ResourceResolver​(String base)
    • Method Detail

      • 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)
      • findHrefSource

        protected Source findHrefSource​(String path)
      • findRelativeSource

        protected Source findRelativeSource​(String path)