/**
* 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.webui.jsptag;
import java.io.File;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import org.dspace.content.Item;
import org.dspace.core.ConfigurationManager;
import org.dspace.app.sfx.SFXFileReader;
/**
* Renders an SFX query link. Takes one attribute - "item" which must be an Item
* object.
*
* @author Robert Tansley
* @version $Revision$
*/
public class SFXLinkTag extends TagSupport
{
/** Item to display SFX link for */
private transient Item item;
/** The fully qualified pathname of the SFX XML file */
private String sfxFile = ConfigurationManager.getProperty("dspace.dir") + File.separator
+ "config" + File.separator + "sfx.xml";
private static final long serialVersionUID = 7028793612957710128L;
public SFXLinkTag()
{
super();
}
public int doStartTag() throws JspException
{
try
{
String sfxServer = ConfigurationManager
.getProperty("sfx.server.url");
if (sfxServer == null)
{
// No SFX server - SFX linking switched off
return SKIP_BODY;
}
String sfxQuery = "";
sfxQuery = SFXFileReader.loadSFXFile(sfxFile, item);
// Remove initial &, if any
if (sfxQuery.startsWith("&"))
{
sfxQuery = sfxQuery.substring(1);
}
pageContext.getOut().print(sfxServer + sfxQuery);
}
catch (IOException ie)
{
throw new JspException(ie);
}
return SKIP_BODY;
}
/**
* Get the item this tag should display SFX Link for
*
* @return the item
*/
public Item getItem()
{
return item;
}
/**
* Set the item this tag should display SFX Link for
*
* @param itemIn
* the item
*/
public void setItem(Item itemIn)
{
item = itemIn;
}
}