dgraham     2003/07/13 17:10:49

  Modified:    src/share/org/apache/struts/taglib/bean HeaderTag.java
  Log:
  Refactored doStartTag() into smaller methods.
  
  Revision  Changes    Path
  1.11      +40 -24    
jakarta-struts/src/share/org/apache/struts/taglib/bean/HeaderTag.java
  
  Index: HeaderTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/HeaderTag.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- HeaderTag.java    14 Jul 2003 00:04:44 -0000      1.10
  +++ HeaderTag.java    14 Jul 2003 00:10:49 -0000      1.11
  @@ -151,26 +151,21 @@
        */
       public int doStartTag() throws JspException {
   
  -        // Deal with a single header value
  -        if (multiple == null) {
  -            String value =
  -                ((HttpServletRequest) pageContext.getRequest()).getHeader(name);
  -                
  -            if ((value == null) && (this.value != null)) {
  -                value = this.value;
  -            }
  -                
  -            if (value == null) {
  -                JspException e =
  -                    new JspException(messages.getMessage("header.get", name));
  -                RequestUtils.saveException(pageContext, e);
  -                throw e;
  -            }
  -            pageContext.setAttribute(id, value);
  -            return (SKIP_BODY);
  +        if (this.multiple == null) {
  +            this.handleSingleHeader();
  +        } else {
  +            this.handleMultipleHeaders();
           }
   
  -        // Deal with multiple header values
  +        return SKIP_BODY;
  +    }
  +
  +    /**
  +     * Expose an array of header values.
  +     * @throws JspException
  +     * @since Struts 1.2
  +     */
  +    protected void handleMultipleHeaders() throws JspException {
           ArrayList values = new ArrayList();
           Enumeration items =
               ((HttpServletRequest) pageContext.getRequest()).getHeaders(name);
  @@ -179,7 +174,7 @@
               values.add(items.nextElement());
           }
               
  -        if ((values.size() == 0) && (this.value != null)){
  +        if (values.isEmpty() && (this.value != null)){
               values.add(this.value);
           }
               
  @@ -192,8 +187,29 @@
           }
           
           pageContext.setAttribute(id, (String[]) values.toArray(headers));
  -        return (SKIP_BODY);
  +    }
  +
  +    /**
  +     * Expose a single header value.
  +     * @throws JspException
  +     * @since Struts 1.2
  +     */
  +    protected void handleSingleHeader() throws JspException {
  +        String value =
  +            ((HttpServletRequest) pageContext.getRequest()).getHeader(name);
   
  +        if ((value == null) && (this.value != null)) {
  +            value = this.value;
  +        }
  +
  +        if (value == null) {
  +            JspException e =
  +                new JspException(messages.getMessage("header.get", name));
  +            RequestUtils.saveException(pageContext, e);
  +            throw e;
  +        }
  +        
  +        pageContext.setAttribute(id, value);
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to