package org.japanosample.test.legacy;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.DynamicAttributes;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import org.japano.metadata.annotation.JapanoTag;

/**
 
 @author  Sven Helmberger ( sven dot helmberger at gmx dot de )
 @version $Id: DynamicAttrTest.java,v 1.1 2005/09/27 17:37:50 fforw Exp $
 */
 ( library="/test/legacy", bodyContent="empty" )
public class DynamicAttrTest extends SimpleTagSupport implements DynamicAttributes
{  
  private Map<String,Object> attrs=new HashMap();
  
  public void setDynamicAttribute(String uri, String name, Object obj) throws javax.servlet.jsp.JspException
  {
    attrs.put(name, obj);
  }

  public void doTag() throws javax.servlet.jsp.JspException, java.io.IOException
  {
    JspWriter out=getJspContext().getOut();
    out.print('[');         
    boolean first=true;
    for (String name : attrs.keySet())
    {
      if (!first)
        out.print(',');        
      first=false;
      Object o=attrs.get(name);
      if (o instanceof JspFragment)
      {
        out.print(name+'=');
        ((JspFragment)o).invoke(out);
      }
      else
      {      
        out.print(name+'='+o);      
      }
    }    
    out.print(']');        
  }      
}