gt:         if (hrefExpr != null)
context: /**
   * Licensed under the Artistic License; you may not use this file
   * except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://displaytag.sourceforge.net/license.html
   *
   * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   */
  package org.displaytag.tags.el;
  
  import javax.servlet.jsp.JspException;
  
  
  /**
   * Adds EL support to ColumnTag.
   * @author Tim McCune
   * @author Fabrizio Giustina
   * @version $Revision: 1081 $ ($Author: fgiust $)
   */
  public class ELColumnTag extends org.displaytag.tags.ColumnTag
  {
  
      /**
       * D1597A17A6.
       */
      private static final long serialVersionUID = 899149338534L;
  
      /**
       * Expression for the "autoLink" tag attribute.
       */
      private String autoLinkExpr;
  
      /**
       * Expression for the "escapeXml" tag attribute.
       */
      private String escapeXmlExpr;
  
      /**
       * Expression for the "format" tag attribute.
       */
      private String formatExpr;
  
      /**
       * Expression for the "class" tag attribute.
       */
      private String classExpr;
  
      /**
       * Expression for the "decorator" tag attribute.
       */
      private String decoratorExpr;
  
      /**
       * Expression for the "group" tag attribute.
       */
      private String groupExpr;
  
      /**
       * Expression for the "headerClass" tag attribute.
       */
      private String headerClassExpr;
  
      /**
       * Expression for the "href" tag attribute.
       */
      private String hrefExpr;
  
      /**
       * Expression for the "maxLength" tag attribute.
       */
      private String maxLengthExpr;
  
      /**
       * Expression for the "maxWords" tag attribute.
       */
      private String maxWordsExpr;
  
      /**
       * Expression for the "media" tag attribute.
       */
      private String mediaExpr;
  
      /**
       * Expression for the "nulls" tag attribute.
       */
      private String nullsExpr;
  
      /**
       * Expression for the "paramId" tag attribute.
       */
      private String paramIdExpr;
  
      /**
       * Expression for the "paramName" tag attribute.
       */
      private String paramNameExpr;
  
      /**
       * Expression for the "paramProperty" tag attribute.
       */
      private String paramPropertyExpr;
  
      /**
       * Expression for the "paramScope" tag attribute.
       */
      private String paramScopeExpr;
  
      /**
       * Expression for the "property" tag attribute.
       */
      private String propertyExpr;
  
      /**
       * Expression for the "title" tag attribute.
       */
      private String titleExpr;
  
      /**
       * Expression for the "style" tag attribute.
       */
      private String styleExpr;
  
      /**
       * Expression for the "url" tag attribute.
       */
      private String urlExpr;
  
      /**
       * Expression for the "titleKey" tag attribute.
       */
      private String titleKeyExpr;
  
      /**
       * Expression for the "sortable" tag attribute.
       */
      private String sortableExpr;
  
      /**
       * Expression for the "sortName" tag attribute.
       */
      private String sortNameExpr;
  
      /**
       * Expression for the "sortProperty" tag attribute.
       */
      private String sortPropertyExpr;
  
      /**
       * Expression for the "defaultorder" tag attribute.
       */
      private String defaultorderExpr;
  
      /**
       * Expression for the "scope" tag attribute.
       */
      private String scopeExpr;
  
      /**
       * Expression for the "headerScope" tag attribute.
       */
      private String headerScopeExpr;
  
      /**
       * Expression for the "value" tag attribute.
       */
      private String valueExpr;
  
      /**
       * Expression for the "comparator" tag attribute.
       */
      private String comparatorExpr;
  
      /**
       * @see org.displaytag.tags.ColumnTag#setComparator(Object)
       * @param value EL expression for attribute value
       */
      public void setComparator(String value)
      {
          comparatorExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setAutolink(boolean)
       * @param value EL expression for attribute value
       */
      public void setAutolink(String value)
      {
          autoLinkExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setSortProperty(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setSortProperty(String value)
      {
          this.sortPropertyExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setClass(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setClass(String value)
      {
          classExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setFormat(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setFormat(String value)
      {
          formatExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setDecorator(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setDecorator(String value)
      {
          decoratorExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setGroup(int)
       * @param value EL expression for attribute value
       */
      public void setGroup(String value)
      {
          groupExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setHeaderClass(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setHeaderClass(String value)
      {
          headerClassExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setHref(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setHref(String value)
      {
          hrefExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setMaxLength(int)
       * @param value EL expression for attribute value
       */
      public void setMaxLength(String value)
      {
          maxLengthExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setMaxWords(int)
       * @param value EL expression for attribute value
       */
      public void setMaxWords(String value)
      {
          maxWordsExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setMedia(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setMedia(String value)
      {
          mediaExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setNulls(boolean)
       * @param value EL expression for attribute value
       */
      public void setNulls(String value)
      {
          nullsExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setParamId(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setParamId(String value)
      {
          paramIdExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setParamName(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setParamName(String value)
      {
          paramNameExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setParamProperty(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setParamProperty(String value)
      {
          paramPropertyExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setParamScope(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setParamScope(String value)
      {
          paramScopeExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setProperty(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setProperty(String value)
      {
          propertyExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setSortable(boolean)
       * @param value EL expression for attribute value
       */
      public void setSortable(String value)
      {
          sortableExpr = value;
      }
  
      /**
       * @param value EL expression for attribute value
       * @see org.displaytag.tags.ColumnTag#setSortName(java.lang.String)
       */
      public void setSortName(String value)
      {
          sortNameExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setTitle(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setTitle(String value)
      {
          titleExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setStyle(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setStyle(String value)
      {
          styleExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setTitleKey(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setTitleKey(String value)
      {
          titleKeyExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setUrl(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setUrl(String value)
      {
          urlExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.TableTag#setDefaultorder(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setDefaultorder(String value)
      {
          defaultorderExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setScope(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setScope(String value)
      {
          scopeExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setHeaderScope(java.lang.String)
       * @param value EL expression for attribute value
       */
      public void setHeaderScope(String value)
      {
          headerScopeExpr = value;
      }
  
      /**
       * @see org.displaytag.tags.ColumnTag#setValue(java.lang.Object)
       * @param value EL expression for attribute value
       */
      public void setValue(String value)
      {
          this.valueExpr = value;
      }
  
      /**
       * @see javax.servlet.jsp.tagext.Tag#doStartTag()
       */
      public int doStartTag() throws JspException
      {
          evaluateExpressions();
  
          return super.doStartTag();
      }
  
      /**
       * Evaluates the expressions for all the given attributes and pass results up to the parent tag.
       * @throws JspException for exceptions occurred during evaluation.
       */
      private void evaluateExpressions() throws JspException
      {
          ExpressionEvaluator eval = new ExpressionEvaluator(this, pageContext);
  
          if (autoLinkExpr != null)
          {
              super.setAutolink(eval.evalBoolean("autolink", autoLinkExpr)); //$NON-NLS-1$
          }
          if (escapeXmlExpr != null)
          {
              super.setEscapeXml(eval.evalBoolean("escapeXml", escapeXmlExpr)); //$NON-NLS-1$
          }
          if (formatExpr != null)
          {
              super.setFormat(eval.evalString("format", formatExpr)); //$NON-NLS-1$
          }
          if (classExpr != null)
          {
              super.setClass(eval.evalString("class", classExpr)); //$NON-NLS-1$
          }
          if (decoratorExpr != null)
          {
              super.setDecorator(eval.evalString("decorator", decoratorExpr)); //$NON-NLS-1$
          }
          if (groupExpr != null)
          {
              super.setGroup(eval.evalInt("group", groupExpr)); //$NON-NLS-1$
          }
          if (headerClassExpr != null)
          {
              super.setHeaderClass(eval.evalString("headerClass", headerClassExpr)); //$NON-NLS-1$
          }
  