package org.genedb.web.tags.db; import static javax.servlet.jsp.PageContext.APPLICATION_SCOPE; import static org.genedb.web.mvc.controller.TaxonManagerListener.TAXON_NODE_MANAGER; import org.genedb.db.taxon.TaxonNameType; import org.genedb.db.taxon.TaxonNode; import org.genedb.db.taxon.TaxonNodeManager; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.SimpleTagSupport; public class OrganismNameTag extends SimpleTagSupport { private String name; private TaxonNameType type; public void setType(String typeString) { this.type = TaxonNameType.valueOf(typeString); } public void setName(String name) { this.name = name; } @Override public void doTag() throws JspException, IOException { TaxonNodeManager tnm = (TaxonNodeManager) getJspContext().getAttribute(TAXON_NODE_MANAGER, APPLICATION_SCOPE); TaxonNode node = tnm.getTaxonNodeForLabel(name); if (node == null) { throw new JspException("Organism Name Tag: Can't identify taxonNode for '"+name+"'"); } JspWriter out = getJspContext().getOut(); out.write(node.getName(type)); } // PageContext pc = (PageContext) getJspContext(); // HttpServletRequest req = (HttpServletRequest) pc.getRequest(); // String contextPath = req.getContextPath(); }