com.enonic.cms.core.xslt.portal.XsltTrackingUriResolver.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.xslt.portal.XsltTrackingUriResolver.java

Source

/*
 * 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;
    }
}