/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.rendering.viewtransformer;
import org.jdom.Document;
import org.jdom.transform.JDOMSource;
import org.springframework.stereotype.Component;
import com.enonic.cms.core.portal.PortalRenderingException;
import com.enonic.cms.core.resource.ResourceFile;
import com.enonic.cms.core.xslt.XsltProcessorException;
import com.enonic.cms.core.xslt.portal.PortalXsltProcessor;
@Component
public class PageTemplateXsltViewTransformer
extends AbstractXsltViewTransformer
{
public ViewTransformationResult transform( ResourceFile xsltTemplateFile, Document xml, TransformationParams transformationParams )
{
try
{
final PortalXsltProcessor processor = createProcessor( xsltTemplateFile.getResourceKey() );
setParameters( processor, transformationParams );
String content = processor.process( new JDOMSource( xml ) );
ViewTransformationResult result = new ViewTransformationResult();
result.setHttpContentType( processor.getContentType() );
result.setContent( content );
result.setOutputMediaType( processor.getOutputMediaType() );
result.setOutputEncoding( processor.getOutputEncoding() );
result.setOutputMethod( processor.getOutputMethod() );
return result;
}
catch ( XsltProcessorException e )
{
throw new PortalRenderingException( "Failed to transform page template view", e );
}
}
}