/*
*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc.
* Use is subject to license terms.
*
*/
package taglib;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
import java.util.*;
public class DefinitionTag extends TagSupport {
private String screenName = null;
private String definitionName = null;
private String screenId;
public DefinitionTag() {
super();
}
public void setName(String name) {
this.definitionName = name;
}
public void setScreen(String screenId) {
this.screenId = screenId;
}
public int doStartTag() {
HashMap screens = null;
screens = (HashMap) pageContext.getAttribute("screens");
if (screens == null)
pageContext.setAttribute("screens", new HashMap(), pageContext.APPLICATION_SCOPE);
return EVAL_BODY_INCLUDE;
}
public int doEndTag()throws JspTagException {
try {
Definition definition = new Definition();
HashMap screens = null;
ArrayList params = null;
TagSupport screen = null;
screens = (HashMap) pageContext.getAttribute("screens", pageContext.APPLICATION_SCOPE);
if (screens != null) {
params = (ArrayList) screens.get(screenId);
}
else
Debug.println("DefinitionTag: screens null.");
if (params == null)
Debug.println("DefinitionTag: params are not defined.");
Iterator ir = null;
if (params != null)
ir = params.iterator();
while ((ir != null) && ir.hasNext())
definition.setParam((Parameter) ir.next());
// put the definition in the page context
pageContext.setAttribute(definitionName, definition);
} catch (Exception ex) {
ex.printStackTrace();
}
return EVAL_PAGE;
}
public void release() {
screenName = null;
definitionName = null;
screenId = null;
super.release();
}
}