/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.xslt.portal; import java.util.Set; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.URIResolver; import com.google.common.collect.Sets; import com.enonic.cms.core.resource.FileResourceName; import com.enonic.cms.core.xslt.XsltResourceHelper; final class XsltTrackingUriResolver implements URIResolver { private final XsltResourceLoader resourceLoader; private final Set<FileResourceName> includeSet; public XsltTrackingUriResolver( final XsltResourceLoader resourceLoader ) { this.resourceLoader = resourceLoader; this.includeSet = Sets.newHashSet(); } public Set<FileResourceName> getIncludes() { return this.includeSet; } @Override public Source resolve( final String href, final String base ) throws TransformerException { final FileResourceName name = new FileResourceName( XsltResourceHelper.resolveRelativePath( href, base ) ); final Source source = this.resourceLoader.load( name ); this.includeSet.add( name ); return source; } }