/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.xmlui.cocoon;
import java.io.IOException;
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.transformation.AbstractTransformer;
import org.xml.sax.SAXException;
public class StylesheetInstructionTransformer extends AbstractTransformer
{
/** The location of the XSL stylesheet relative to the application */
private String stylesheet;
/**
* Setup the processing instruction transformer. The only parameter that
* matters in the src parameter which should be the path to an XSL
* stylesheet to be applied by the clients browser.
*/
public void setup(SourceResolver resolver, Map objectModel, String src,
Parameters parameters) throws ProcessingException, SAXException,
IOException
{
Request request = ObjectModelHelper.getRequest(objectModel);
String contextPath = request.getContextPath();
this.stylesheet = contextPath + src;
}
/**
* Receive notification of the beginning of a document.
*/
public void startDocument() throws SAXException
{
super.startDocument();
// <?xml-stylesheet type="text/xsl" href="<stylesheet>"?>
super.processingInstruction("xml-stylesheet",
"type=\"text/xsl\" href=\"" + stylesheet + "\"");
}
}