/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.xslt.portal; import java.util.Collection; import java.util.Properties; import java.util.Set; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import com.google.common.collect.Sets; import com.enonic.cms.core.resource.FileResourceName; final class XsltTemplatesCacheEntry implements Templates { private final FileResourceName name; private final Templates templates; private final Set<FileResourceName> resourceSet; private final long timestamp; private long lastValidated; public XsltTemplatesCacheEntry( final FileResourceName name, final Templates templates ) { this.name = name; this.templates = templates; this.timestamp = System.currentTimeMillis(); this.resourceSet = Sets.newHashSet(); this.resourceSet.add( this.name ); this.lastValidated = this.timestamp; } public FileResourceName getName() { return this.name; } public long getCompileTimestamp() { return this.timestamp; } public Set<FileResourceName> getResourceSet() { return this.resourceSet; } @Override public Transformer newTransformer() throws TransformerConfigurationException { return this.templates.newTransformer(); } @Override public Properties getOutputProperties() { return this.templates.getOutputProperties(); } public long getLastValidated() { return lastValidated; } public void setLastValidated( final long lastValidated ) { this.lastValidated = lastValidated; } public void addIncludes( final Collection<FileResourceName> includes ) { this.resourceSet.addAll( includes ); } }