You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2014/04/15 11:13:06 UTC

svn commit: r1587479 [2/6] - in /myfaces/tobago/branches/tobago-3.0.x: ./ tobago-assembly/ tobago-core/ tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/ tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/ tobago-core/src/m...

Copied: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTagDeclaration.java (from r1587458, myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTag.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTagDeclaration.java?p2=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTagDeclaration.java&p1=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTag.java&r1=1587458&r2=1587479&rev=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TabChangeListenerTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -23,18 +23,8 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.SimpleTag;
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
-import org.apache.myfaces.tobago.event.TabChangeListener;
-import org.apache.myfaces.tobago.event.TabChangeSource2;
-import org.apache.myfaces.tobago.event.ValueExpressionTabChangeListener;
 
-import javax.el.ELContext;
 import javax.el.ValueExpression;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.webapp.UIComponentClassicTagBase;
-import javax.faces.webapp.UIComponentELTag;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.TagSupport;
 
 /**
  * Register an TabChangedListener instance on the UIComponent
@@ -43,105 +33,19 @@ import javax.servlet.jsp.tagext.TagSuppo
 @Tag(name = "tabChangeListener", bodyContent = BodyContent.EMPTY)
 @SimpleTag(
     faceletHandler = "org.apache.myfaces.tobago.facelets.TabChangeListenerHandler")
-public abstract class TabChangeListenerTag extends TagSupport {
-
-  private static final long serialVersionUID = 2L;
-
-  private ValueExpression type;
-  private ValueExpression binding;
+public interface TabChangeListenerTagDeclaration {
 
   /**
    * Fully qualified Java class name of a TabChangeListener to be
    * created and registered.
    */
   @TagAttribute(required = true, name = "type", type = "java.lang.String")
-  public void setType(final ValueExpression type) {
-    this.type = type;
-  }
+  void setType(final ValueExpression type);
 
   /**
    * The value binding expression to a TabChangeListener.
    */
   @TagAttribute(name = "binding", type = "org.apache.myfaces.tobago.event.TabChangeListener")
-  public void setBinding(final ValueExpression binding) {
-    this.binding = binding;
-  }
-
-  /**
-   * <p>Create a new instance of the specified {@link TabChangeListener}
-   * class, and register it with the {@link javax.faces.component.UIComponent} instance associated
-   * with our most immediately surrounding {@link javax.faces.webapp.UIComponentELTag} instance, if
-   * the {@link javax.faces.component.UIComponent} instance was created by this execution of the
-   * containing JSP page.</p>
-   *
-   * @throws JspException if a JSP error occurs
-   */
-  public int doStartTag() throws JspException {
-
-    // Locate our parent UIComponentTag
-    final UIComponentClassicTagBase tag =
-        UIComponentELTag.getParentUIComponentClassicTagBase(pageContext);
-    if (tag == null) {
-      // TODO Message resource i18n
-      throw new JspException("Not nested in faces tag");
-    }
-
-    if (!tag.getCreated()) {
-      return (SKIP_BODY);
-    }
-
-    final UIComponent component = tag.getComponentInstance();
-    if (component == null) {
-      // TODO Message resource i18n
-      throw new JspException("Component Instance is null");
-    }
-    if (!(component instanceof TabChangeSource2)) {
-      // TODO Message resource i18n
-      throw new JspException("Component " + component.getClass().getName() + " is not instanceof TabChangeSource2");
-    }
-    final TabChangeSource2 changeSource = (TabChangeSource2) component;
-    final ELContext elContext = FacesContext.getCurrentInstance().getELContext();
+  void setBinding(final ValueExpression binding);
 
-    TabChangeListener handler = null;
-    if (binding != null && !binding.isLiteralText()) {
-
-      final Object value = binding.getValue(elContext);
-      if (value instanceof TabChangeListener) {
-        handler = (TabChangeListener) value;
-      }
-    }
-
-    if (handler == null && type != null) {
-      handler = createTabChangeListener((String) type.getValue(elContext));
-      if (handler != null && binding != null) {
-        binding.setValue(elContext, handler);
-      }
-    }
-
-    if (handler != null) {
-      if (binding != null) {
-        changeSource.addTabChangeListener(
-            new ValueExpressionTabChangeListener((String) type.getValue(elContext), binding));
-      } else {
-        changeSource.addTabChangeListener(handler);
-      }
-    }
-
-    return (SKIP_BODY);
-  }
-
-  /**
-   * <p>Create and return a new {@link TabChangeListener} to be registered
-   * on our surrounding {@link javax.faces.component.UIComponent}.</p>
-   *
-   * @throws javax.servlet.jsp.JspException if a new instance cannot be created
-   */
-  protected TabChangeListener createTabChangeListener(final String className) throws JspException {
-    try {
-      final Class clazz = getClass().getClassLoader().loadClass(className);
-      return ((TabChangeListener) clazz.newInstance());
-    } catch (final Exception e) {
-      throw new JspException(e);
-    }
-  }
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarCommandTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarCommandTagDeclaration.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarCommandTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarCommandTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -40,9 +40,7 @@ import javax.faces.component.UICommand;
 /**
  * Renders a command button within a toolbar.
  */
-@Tag(
-    name = "toolBarCommand",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "toolBarCommand")
 @UIComponentTag(
     uiComponent = "org.apache.myfaces.tobago.component.UIToolBarCommand",
     uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUIToolBarCommand",

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectBooleanTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectBooleanTagDeclaration.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectBooleanTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectBooleanTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -35,9 +35,7 @@ import javax.faces.component.UICommand;
 /**
  * Renders a selectable command button within a toolbar.
  */
-@Tag(
-    name = "toolBarCheck",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "toolBarCheck")
 @UIComponentTag(
     uiComponent = "org.apache.myfaces.tobago.component.UIToolBarCheck",
     uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUICommandBase",

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectOneTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectOneTagDeclaration.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectOneTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ToolBarSelectOneTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -32,9 +32,7 @@ import javax.faces.component.UICommand;
 /**
  * Renders a set of radio command button's within a toolbar.
  */
-@Tag(
-    name = "toolBarSelectOne",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "toolBarSelectOne")
 @UIComponentTag(
     uiComponent = "org.apache.myfaces.tobago.component.UIToolBarSelectOne",
     uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUICommandBase",

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -42,9 +42,7 @@ import javax.faces.component.UICommand;
 /**
  * Renders a command inside of a tree.
  */
-@Tag(
-    name = "treeCommand",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "treeCommand")
 @BodyContentDescription(anyTagOf = "facestag")
 @UIComponentTag(
     uiComponent = "org.apache.myfaces.tobago.component.UITreeCommand",

Copied: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTagDeclaration.java (from r1587458, myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTag.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTagDeclaration.java?p2=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTagDeclaration.java&p1=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTag.java&r1=1587458&r2=1587479&rev=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateFileItemTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -22,70 +22,24 @@ package org.apache.myfaces.tobago.intern
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.ValidatorTag;
-import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.apache.myfaces.tobago.validator.FileItemValidator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import javax.el.ELContext;
 import javax.el.ValueExpression;
-import javax.faces.application.Application;
-import javax.faces.context.FacesContext;
-import javax.faces.validator.Validator;
-import javax.faces.webapp.ValidatorELTag;
-import javax.servlet.jsp.JspException;
 
 /**
- * Register an FileItemValidator instance on the UIComponent
+ * Register an {@link FileItemValidator} instance on the UIComponent
  * associated with the closest parent UIComponent custom action.
  */
 @Tag(name = "validateFileItem")
 @ValidatorTag(
     validatorId = FileItemValidator.VALIDATOR_ID,
     faceletHandler = "org.apache.myfaces.tobago.facelets.TobagoValidateHandler")
-public abstract class ValidateFileItemTag extends ValidatorELTag {
-
-  private static final long serialVersionUID = 2L;
-
-  private static final Logger LOG = LoggerFactory.getLogger(ValidateFileItemTag.class);
-
-  private javax.el.ValueExpression contentType;
-  private javax.el.ValueExpression maxSize;
-
-  protected Validator createValidator() throws JspException {
-
-    final FacesContext facesContext = FacesContext.getCurrentInstance();
-    final Application application = facesContext.getApplication();
-    final FileItemValidator validator = (FileItemValidator) application.createValidator(FileItemValidator.VALIDATOR_ID);
-    final ELContext elContext = facesContext.getELContext();
-
-    if (maxSize != null) {
-      try {
-        validator.setMaxSize((Integer) maxSize.getValue(elContext));
-      } catch (final NumberFormatException e) {
-        LOG.warn(e.getMessage());
-      }
-    }
-    if (contentType != null) {
-      validator.setContentType(ComponentUtils.splitList((String) contentType.getValue(elContext)));
-    }
-    return validator;
-  }
-
-  @Override
-  public void release() {
-    super.release();
-    contentType = null;
-    maxSize = null;
-  }
+public interface ValidateFileItemTagDeclaration {
 
   @TagAttribute(name = "maxSize", type = "java.lang.Integer")
-  public void setMaxSize(final ValueExpression maxSize) {
-    this.maxSize = maxSize;
-  }
+  void setMaxSize(final ValueExpression maxSize);
 
   @TagAttribute(name = "contentType", type = "java.lang.String")
-  public void setContentType(final ValueExpression contentType) {
-    this.contentType = contentType;
-  }
+  void setContentType(final ValueExpression contentType);
+
 }

Copied: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTagDeclaration.java (from r1587458, myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTag.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTagDeclaration.java?p2=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTagDeclaration.java&p1=myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTag.java&r1=1587458&r2=1587479&rev=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ValidateSubmittedValueLengthTagDeclaration.java Tue Apr 15 09:13:03 2014
@@ -24,62 +24,22 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.ValidatorTag;
 import org.apache.myfaces.tobago.validator.SubmittedValueLengthValidator;
 
-import javax.el.ELContext;
 import javax.el.ValueExpression;
-import javax.faces.application.Application;
-import javax.faces.context.FacesContext;
-import javax.faces.validator.Validator;
-import javax.faces.webapp.ValidatorELTag;
-import javax.servlet.jsp.JspException;
 
 /**
- * Register an SubmittedValueLengthValidator instance on the UIComponent
+ * Register an {@link SubmittedValueLengthValidator} instance on the UIComponent
  * associated with the closest parent UIComponent custom action.
  * The standard LengthValidator validate the length on the converted value.toString()
  * not on the submitted value. Sometime you need to check the length of the submitted value.
  */
 @Tag(name = "validateSubmittedValueLength")
-@ValidatorTag(
-    validatorId = SubmittedValueLengthValidator.VALIDATOR_ID)
-public abstract class ValidateSubmittedValueLengthTag extends ValidatorELTag {
-
-  private static final long serialVersionUID = 2L;
-
-  private ValueExpression minimum;
-  private ValueExpression maximum;
-
-  protected Validator createValidator() throws JspException {
-    final FacesContext facesContext = FacesContext.getCurrentInstance();
-    final Application application = facesContext.getApplication();
-    final SubmittedValueLengthValidator validator
-        = (SubmittedValueLengthValidator) application.createValidator(SubmittedValueLengthValidator.VALIDATOR_ID);
-    final ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
-    if (minimum != null) {
-      try {
-        validator.setMinimum((Integer) minimum.getValue(elContext));
-      } catch (final NumberFormatException e) {
-        // ignore
-      }
-    }
-    if (maximum != null) {
-      try {
-        validator.setMaximum((Integer) maximum.getValue(elContext));
-      } catch (final NumberFormatException e) {
-        // ignore
-      }
-    }
-    return validator;
-  }
+@ValidatorTag(validatorId = SubmittedValueLengthValidator.VALIDATOR_ID)
+public interface ValidateSubmittedValueLengthTagDeclaration {
 
   @TagAttribute(name = "minimum", type = "java.lang.Integer")
-  public void setMinimum(final ValueExpression minimum) {
-    this.minimum = minimum;
-  }
+  void setMinimum(final ValueExpression minimum);
 
   @TagAttribute(name = "maximum", type = "java.lang.Integer")
-  public void setMaximum(final ValueExpression maximum) {
-    this.maximum = maximum;
+  void setMaximum(final ValueExpression maximum);
 
-  }
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasBinding.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasBinding.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasBinding.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasBinding.java Tue Apr 15 09:13:03 2014
@@ -22,19 +22,12 @@ package org.apache.myfaces.tobago.intern
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
 
-import javax.servlet.jsp.JspException;
-
 public interface HasBinding {
   /**
    * The value binding expression linking this component to a property in a backing bean.
-   * <p/>
-   * Warning: For the tobago extension library <b>tx</b> the binding differs from JSP and Facelets:
-   * <ul>
-   * <li>JSP: The component is the inner main control (e. g. UIInput).</li>
-   * <li>Facelets: The component is the outer UIPanel.</li>
-   * </ul>
+   * For Facelets, the component is the outer UIPanel, not the input control.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  void setBinding(String binding) throws JspException;
+  void setBinding(String binding);
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java Tue Apr 15 09:13:03 2014
@@ -24,13 +24,9 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.internal.taglib.DatePickerTag;
-import org.apache.myfaces.tobago.internal.taglib.DateTag;
-import org.apache.myfaces.tobago.internal.taglib.FormTag;
 
 import javax.el.MethodExpression;
 import javax.el.ValueExpression;
-import javax.servlet.jsp.JspException;
 
 /**
  * Renders a date input field with a date picker and a label.
@@ -53,207 +49,14 @@ import javax.servlet.jsp.JspException;
 @ExtensionTag(
     baseClassName = "org.apache.myfaces.tobago.internal.taglib.DateTag",
     faceletHandler = "org.apache.myfaces.tobago.facelets.extension.DateExtensionHandler")
-public class DateExtensionTag extends TobagoExtensionBodyTagSupport {
-
-  private static final long serialVersionUID = 1L;
-
-  private ValueExpression binding;
-  private ValueExpression converter;
-  private MethodExpression validator;
-  private ValueExpression disabled;
-  private ValueExpression focus;
-  private ValueExpression label;
-  private ValueExpression readonly;
-  private ValueExpression rendered;
-  private ValueExpression required;
-  private ValueExpression tip;
-  private ValueExpression placeholder;
-  private ValueExpression value;
-  private MethodExpression valueChangeListener;
-  private ValueExpression inline;
-  private ValueExpression onchange;
-  private ValueExpression tabIndex;
-  private ValueExpression markup;
-  private ValueExpression validatorMessage;
-  private ValueExpression converterMessage;
-  private ValueExpression requiredMessage;
-  private String fieldId;
-  private String pickerId;
-  private String formId;
-
-  private ValueExpression labelWidth;
-  private LabelExtensionTag labelTag;
-  private DateTag dateTag;
-
-  @Override
-  public int doStartTag() throws JspException {
-
-    labelTag = new LabelExtensionTag();
-    labelTag.setPageContext(pageContext);
-    if (id != null) {
-      labelTag.setId(id);
-    }
-    if (label != null) {
-      labelTag.setValue(label);
-    }
-    if (labelWidth != null) {
-      labelTag.setColumns(createStringValueExpression(labelWidth.getExpressionString() + ";*;auto"));
-    } else {
-      labelTag.setColumns(createStringValueExpression("auto;*;auto"));
-    }
-    if (tip != null) {
-      labelTag.setTip(tip);
-    }
-    if (rendered != null) {
-      labelTag.setRendered(rendered);
-    }
-    if (markup != null) {
-      labelTag.setMarkup(markup);
-    }
-    labelTag.setParent(getParent());
-    labelTag.setJspId(nextJspId());
-    labelTag.doStartTag();
-
-    dateTag = new DateTag();
-    dateTag.setPageContext(pageContext);
-    if (value != null) {
-      dateTag.setValue(value);
-    }
-    if (valueChangeListener != null) {
-      dateTag.setValueChangeListener(valueChangeListener);
-    }
-    if (placeholder != null) {
-      dateTag.setPlaceholder(placeholder);
-    }
-    if (binding != null) {
-      dateTag.setBinding(binding);
-    }
-    if (converter != null) {
-      dateTag.setConverter(converter);
-    }
-    if (validator != null) {
-      dateTag.setValidator(validator);
-    }
-    if (disabled != null) {
-      dateTag.setDisabled(disabled);
-    }
-    if (onchange != null) {
-      dateTag.setOnchange(onchange);
-    }
-    if (focus != null) {
-      dateTag.setFocus(focus);
-    }
-    if (fieldId != null) {
-      dateTag.setId(fieldId);
-    }
-    if (label != null) {
-      dateTag.setLabel(label);
-    }
-    if (inline != null) {
-      dateTag.setInline(inline);
-    }
-    if (readonly != null) {
-      dateTag.setReadonly(readonly);
-    }
-    if (required != null) {
-      dateTag.setRequired(required);
-    }
-    if (markup != null) {
-      dateTag.setMarkup(markup);
-    }
-    if (tabIndex != null) {
-      dateTag.setTabIndex(tabIndex);
-    }
-    if (validatorMessage != null) {
-      dateTag.setValidatorMessage(validatorMessage);
-    }
-    if (converterMessage != null) {
-      dateTag.setConverterMessage(converterMessage);
-    }
-    if (requiredMessage != null) {
-      dateTag.setRequiredMessage(requiredMessage);
-    }
-
-    dateTag.setParent(labelTag);
-    dateTag.setJspId(nextJspId());
-    dateTag.doStartTag();
-
-    return super.doStartTag();
-  }
-
-  @Override
-  public int doEndTag() throws JspException {
-    dateTag.doEndTag();
-    final FormTag formTag = new FormTag();
-    formTag.setPageContext(pageContext);
-    formTag.setParent(labelTag);
-    if (formId != null) {
-      formTag.setId(formId);
-    }
-    formTag.setJspId(nextJspId());
-    formTag.doStartTag();
-
-    final DatePickerTag datePicker = new DatePickerTag();
-    datePicker.setPageContext(pageContext);
-    datePicker.setFor("@auto");
-    if (tabIndex != null) {
-      datePicker.setTabIndex(tabIndex);
-    }
-    if (markup != null) {
-      datePicker.setMarkup(markup);
-    }
-    datePicker.setParent(formTag);
-    if (pickerId != null) {
-      datePicker.setId(pickerId);
-    }
-    datePicker.setJspId(nextJspId());
-    datePicker.doStartTag();
-    datePicker.doEndTag();
-    formTag.doEndTag();
-
-    labelTag.doEndTag();
-    return super.doEndTag();
-  }
-
-  @Override
-  public void release() {
-    super.release();
-    binding = null;
-    converter = null;
-    validator = null;
-    disabled = null;
-    labelWidth = null;
-    focus = null;
-    label = null;
-    inline = null;
-    readonly = null;
-    rendered = null;
-    required = null;
-    tip = null;
-    placeholder = null;
-    value = null;
-    valueChangeListener = null;
-    onchange = null;
-    markup = null;
-    tabIndex = null;
-    labelTag = null;
-    dateTag = null;
-    validatorMessage = null;
-    converterMessage = null;
-    requiredMessage = null;
-    fieldId = null;
-    pickerId = null;
-    formId = null;
-  }
+public interface DateExtensionTag {
 
   /**
    * The current value of this component.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Object")
-  public void setValue(final ValueExpression value) {
-    this.value = value;
-  }
+  public void setValue(final ValueExpression value) ;
 
   /**
    * MethodBinding representing a value change listener method
@@ -266,9 +69,7 @@ public class DateExtensionTag extends To
           type = {},
           expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
           methodSignature = "javax.faces.event.ValueChangeEvent")
-  public void setValueChangeListener(final MethodExpression valueChangeListener) {
-    this.valueChangeListener = valueChangeListener;
-  }
+  public void setValueChangeListener(final MethodExpression valueChangeListener) ;
 
   /**
    * Text value to display as label.
@@ -276,27 +77,21 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabel(final ValueExpression label) {
-    this.label = label;
-  }
+  public void setLabel(final ValueExpression label) ;
 
   /**
    * Client side script function to add to this component's onchange handler.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setOnchange(final ValueExpression onchange) {
-    this.onchange = onchange;
-  }
+  public void setOnchange(final ValueExpression onchange) ;
 
   /**
    * Flag indicating this component should receive the focus.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setFocus(final ValueExpression focus) {
-    this.focus = focus;
-  }
+  public void setFocus(final ValueExpression focus) ;
 
   /**
    * The value binding expression linking this
@@ -304,9 +99,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  public void setBinding(final ValueExpression binding) {
-    this.binding = binding;
-  }
+  public void setBinding(final ValueExpression binding) ;
 
   /**
    * Flag indicating whether or not this component should be rendered
@@ -314,9 +107,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setRendered(final ValueExpression rendered) {
-    this.rendered = rendered;
-  }
+  public void setRendered(final ValueExpression rendered) ;
 
   /**
    * An expression that specifies the Converter for this component.
@@ -330,9 +121,7 @@ public class DateExtensionTag extends To
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.convert.Converter",
       expression = DynamicExpression.VALUE_EXPRESSION)
-  public void setConverter(final ValueExpression converter) {
-    this.converter = converter;
-  }
+  public void setConverter(final ValueExpression converter) ;
 
   /**
    * A method binding EL expression,
@@ -344,9 +133,7 @@ public class DateExtensionTag extends To
   @UIComponentTagAttribute(type = {},
       expression = DynamicExpression.METHOD_EXPRESSION,
       methodSignature = { "javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object" })
-  public void setValidator(final MethodExpression validator) {
-    this.validator = validator;
-  }
+  public void setValidator(final MethodExpression validator) ;
 
   /**
    * Flag indicating this component should rendered as an inline element.
@@ -355,27 +142,21 @@ public class DateExtensionTag extends To
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
   @Deprecated
-  public void setInline(final ValueExpression inline) {
-    this.inline = inline;
-  }
+  public void setInline(final ValueExpression inline) ;
 
   /**
    * Flag indicating that this component will prohibit changes by the user.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setReadonly(final ValueExpression readonly) {
-    this.readonly = readonly;
-  }
+  public void setReadonly(final ValueExpression readonly) ;
 
   /**
    * Flag indicating that this element is disabled.
    */
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setDisabled(final ValueExpression disabled) {
-    this.disabled = disabled;
-  }
+  public void setDisabled(final ValueExpression disabled) ;
 
   /**
    * Flag indicating that a value is required.
@@ -384,18 +165,14 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setRequired(final ValueExpression required) {
-    this.required = required;
-  }
+  public void setRequired(final ValueExpression required) ;
 
   /**
    * Text value to display as tooltip.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setTip(final ValueExpression tip) {
-    this.tip = tip;
-  }
+  public void setTip(final ValueExpression tip) ;
 
   /**
    * Displays a short text in the input field, that describes the meaning of this field.
@@ -403,9 +180,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setPlaceholder(final ValueExpression placeholder) {
-    this.placeholder = placeholder;
-  }
+  public void setPlaceholder(final ValueExpression placeholder) ;
 
    /**
    * The width for the label component. Default: 'auto'.
@@ -414,9 +189,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabelWidth(final ValueExpression labelWidth) {
-    this.labelWidth = labelWidth;
-  }
+  public void setLabelWidth(final ValueExpression labelWidth) ;
 
   /**
    * Indicate markup of this component.
@@ -424,42 +197,32 @@ public class DateExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.String[]", defaultValue = "none")
-  public void setMarkup(final ValueExpression markup) {
-    this.markup = markup;
-  }
+  public void setMarkup(final ValueExpression markup) ;
 
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Integer")
-  public void setTabIndex(final ValueExpression tabIndex) {
-    this.tabIndex = tabIndex;
-  }
+  public void setTabIndex(final ValueExpression tabIndex) ;
 
   /**
    * An expression that specifies the validator message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setValidatorMessage(final ValueExpression validatorMessage) {
-    this.validatorMessage = validatorMessage;
-  }
+  public void setValidatorMessage(final ValueExpression validatorMessage) ;
 
   /**
    * An expression that specifies the converter message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setConverterMessage(final ValueExpression converterMessage) {
-    this.converterMessage = converterMessage;
-  }
+  public void setConverterMessage(final ValueExpression converterMessage) ;
 
   /**
    * An expression that specifies the required message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setRequiredMessage(final ValueExpression requiredMessage) {
-    this.requiredMessage = requiredMessage;
-  }
+  public void setRequiredMessage(final ValueExpression requiredMessage) ;
 
   /**
    * The component identifier for the input field component inside of the container.
@@ -467,9 +230,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFieldId(final String fieldId) {
-    this.fieldId = fieldId;
-  }
+  public void setFieldId(final String fieldId) ;
 
   /**
    * The component identifier for the automatically created picker component inside of the container.
@@ -477,9 +238,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setPickerId(final String pickerId) {
-    this.pickerId = pickerId;
-  }
+  public void setPickerId(final String pickerId) ;
 
   /**
    * The component identifier for the automatically created form component inside of the container.
@@ -487,9 +246,7 @@ public class DateExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFormId(final String formId) {
-    this.formId = formId;
-  }
+  public void setFormId(final String formId) ;
 
   /**
    * The component identifier for this component.
@@ -499,7 +256,5 @@ public class DateExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setId(final String id) {
-    super.setId(id);
-  }
+  public void setId(final String id) ;
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/FileExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/FileExtensionTag.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/FileExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/FileExtensionTag.java Tue Apr 15 09:13:03 2014
@@ -24,9 +24,6 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.internal.taglib.FileTag;
-
-import javax.servlet.jsp.JspException;
 
 /**
  * Renders a file input field with a label.
@@ -50,134 +47,7 @@ import javax.servlet.jsp.JspException;
 @ExtensionTag(
     baseClassName = "org.apache.myfaces.tobago.internal.taglib.FileTag",
     faceletHandler = "org.apache.myfaces.tobago.facelets.extension.FileExtensionHandler")
-public class FileExtensionTag extends TobagoExtensionBodyTagSupport {
-
-  private javax.el.ValueExpression binding;
-  private javax.el.ValueExpression label;
-  private javax.el.ValueExpression value;
-  private javax.el.MethodExpression valueChangeListener;
-  private javax.el.MethodExpression validator;
-  private javax.el.ValueExpression disabled;
-  private javax.el.ValueExpression rendered;
-  private javax.el.ValueExpression tip;
-  private javax.el.ValueExpression onchange;
-  private javax.el.ValueExpression labelWidth;
-  private javax.el.ValueExpression required;
-  private javax.el.ValueExpression tabIndex;
-  private javax.el.ValueExpression focus;
-  private javax.el.ValueExpression validatorMessage;
-  private javax.el.ValueExpression converterMessage;
-  private javax.el.ValueExpression requiredMessage;
-  private String fieldId;
-
-  private LabelExtensionTag labelTag;
-  private FileTag fileTag;
-
-  @Override
-  public int doStartTag() throws JspException {
-
-    labelTag = new LabelExtensionTag();
-    labelTag.setPageContext(pageContext);
-    if (id != null) {
-      labelTag.setId(id);
-    }
-    if (label != null) {
-      labelTag.setValue(label);
-    }
-    if (tip != null) {
-      labelTag.setTip(tip);
-    }
-    if (rendered != null) {
-      labelTag.setRendered(rendered);
-    }
-    if (labelWidth != null) {
-      labelTag.setLabelWidth(createStringValueExpression(labelWidth.getExpressionString() + ";*"));
-    }
-    labelTag.setParent(getParent());
-    labelTag.setJspId(nextJspId());
-    labelTag.doStartTag();
-
-    fileTag = new FileTag();
-    fileTag.setPageContext(pageContext);
-    if (value != null) {
-      fileTag.setValue(value);
-    }
-    if (valueChangeListener != null) {
-      fileTag.setValueChangeListener(valueChangeListener);
-    }
-    if (binding != null) {
-      fileTag.setBinding(binding);
-    }
-    if (validator != null) {
-      fileTag.setValidator(validator);
-    }
-    if (disabled != null) {
-      fileTag.setDisabled(disabled);
-    }
-    if (fieldId != null) {
-      fileTag.setId(fieldId);
-    }
-    if (label != null) {
-      fileTag.setLabel(label);
-    }
-    if (onchange != null) {
-      fileTag.setOnchange(onchange);
-    }
-    if (required != null) {
-      fileTag.setRequired(required);
-    }
-    if (tabIndex != null) {
-      fileTag.setTabIndex(tabIndex);
-    }
-    if (focus != null) {
-      //fileTag.set
-    }
-    if (validatorMessage != null) {
-      fileTag.setValidatorMessage(validatorMessage);
-    }
-    if (converterMessage != null) {
-      fileTag.setConverterMessage(converterMessage);
-    }
-    if (requiredMessage != null) {
-      fileTag.setRequiredMessage(requiredMessage);
-    }
-    fileTag.setParent(labelTag);
-    fileTag.setJspId(nextJspId());
-    fileTag.doStartTag();
-
-    return super.doStartTag();
-  }
-
-  @Override
-  public int doEndTag() throws JspException {
-    fileTag.doEndTag();
-    labelTag.doEndTag();
-    return super.doEndTag();
-  }
-
-  @Override
-  public void release() {
-    super.release();
-    binding = null;
-    validator = null;
-    disabled = null;
-    label = null;
-    labelWidth = null;
-    tip = null;
-    onchange = null;
-    value = null;
-    rendered = null;
-    valueChangeListener = null;
-    required = null;
-    tabIndex = null;
-    fileTag = null;
-    labelTag = null;
-    focus = null;
-    validatorMessage = null;
-    converterMessage = null;
-    requiredMessage = null;
-    fieldId = null;
-  }
+public interface FileExtensionTag {
 
   /**
    * Text value to display as label.
@@ -185,44 +55,34 @@ public class FileExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabel(final javax.el.ValueExpression label) {
-    this.label = label;
-  }
+  public void setLabel(final javax.el.ValueExpression label) ;
 
   /**
    * The current value of this component.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Object")
-  public void setValue(final javax.el.ValueExpression value) {
-    this.value = value;
-  }
+  public void setValue(final javax.el.ValueExpression value) ;
 
   /**
    * MethodBinding representing a value change listener method
    * that will be notified when a new value has been set for this input component.
    * The expression must evaluate to a public method that takes a ValueChangeEvent
    * parameter, with a return type of void.
-   *
-   * @param valueChangeListener
    */
   @TagAttribute
   @UIComponentTagAttribute(
           type = {},
           expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
           methodSignature = "javax.faces.event.ValueChangeEvent")
-  public void setValueChangeListener(final javax.el.MethodExpression valueChangeListener) {
-    this.valueChangeListener = valueChangeListener;
-  }
+  public void setValueChangeListener(final javax.el.MethodExpression valueChangeListener) ;
 
   /**
    * Clientside script function to add to this component's onchange handler.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setOnchange(final javax.el.ValueExpression onchange) {
-    this.onchange = onchange;
-  }
+  public void setOnchange(final javax.el.ValueExpression onchange) ;
 
   /**
    * The value binding expression linking this
@@ -230,9 +90,7 @@ public class FileExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  public void setBinding(final javax.el.ValueExpression binding) {
-    this.binding = binding;
-  }
+  public void setBinding(final javax.el.ValueExpression binding) ;
 
   /**
    * Flag indicating whether or not this component should be rendered
@@ -240,9 +98,7 @@ public class FileExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setRendered(final javax.el.ValueExpression rendered) {
-    this.rendered = rendered;
-  }
+  public void setRendered(final javax.el.ValueExpression rendered) ;
 
   /**
    * A method binding EL expression,
@@ -254,27 +110,21 @@ public class FileExtensionTag extends To
   @UIComponentTagAttribute(type = {},
       expression = DynamicExpression.METHOD_EXPRESSION,
       methodSignature = { "javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object" })
-  public void setValidator(final javax.el.MethodExpression validator) {
-    this.validator = validator;
-  }
+  public void setValidator(final javax.el.MethodExpression validator) ;
 
   /**
    * Flag indicating that this element is disabled.
    */
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setDisabled(final javax.el.ValueExpression disabled) {
-    this.disabled = disabled;
-  }
+  public void setDisabled(final javax.el.ValueExpression disabled) ;
 
   /**
    * Text value to display as tooltip.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setTip(final javax.el.ValueExpression tip) {
-    this.tip = tip;
-  }
+  public void setTip(final javax.el.ValueExpression tip) ;
    /**
    * The width for the label component. Default: 'auto'.
    * This value is used in the gridLayouts columns attribute.
@@ -282,9 +132,7 @@ public class FileExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabelWidth(final javax.el.ValueExpression labelWidth) {
-    this.labelWidth = labelWidth;
-  }
+  public void setLabelWidth(final javax.el.ValueExpression labelWidth) ;
 
   /**
    * Flag indicating that a value is required.
@@ -293,51 +141,39 @@ public class FileExtensionTag extends To
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setRequired(final javax.el.ValueExpression required) {
-    this.required = required;
-  }
+  public void setRequired(final javax.el.ValueExpression required) ;
 
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Integer")
-  public void setTabIndex(final javax.el.ValueExpression tabIndex) {
-    this.tabIndex = tabIndex;
-  }
+  public void setTabIndex(final javax.el.ValueExpression tabIndex) ;
 
   /**
    * Flag indicating this component should receive the focus.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setFocus(final javax.el.ValueExpression focus) {
-    this.focus = focus;
-  }
+  public void setFocus(final javax.el.ValueExpression focus) ;
 
   /**
    * An expression that specifies the validator message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setValidatorMessage(final javax.el.ValueExpression validatorMessage) {
-    this.validatorMessage = validatorMessage;
-  }
+  public void setValidatorMessage(final javax.el.ValueExpression validatorMessage) ;
 
   /**
    * An expression that specifies the converter message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setConverterMessage(final javax.el.ValueExpression converterMessage) {
-    this.converterMessage = converterMessage;
-  }
+  public void setConverterMessage(final javax.el.ValueExpression converterMessage) ;
 
   /**
    * An expression that specifies the required message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setRequiredMessage(final javax.el.ValueExpression requiredMessage) {
-    this.requiredMessage = requiredMessage;
-  }
+  public void setRequiredMessage(final javax.el.ValueExpression requiredMessage) ;
 
   /**
    * The component identifier for the input field component inside of the container.
@@ -345,9 +181,7 @@ public class FileExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFieldId(final String fieldId) {
-    this.fieldId = fieldId;
-  }
+  public void setFieldId(final String fieldId) ;
 
   /**
    * The component identifier for this component.
@@ -357,7 +191,5 @@ public class FileExtensionTag extends To
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setId(final String id) {
-    super.setId(id);
-  }
+  public void setId(final String id) ;
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java Tue Apr 15 09:13:03 2014
@@ -24,13 +24,9 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.internal.taglib.InTag;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import javax.el.MethodExpression;
 import javax.el.ValueExpression;
-import javax.servlet.jsp.JspException;
 
 /**
  * Renders a text input field with a label.
@@ -54,182 +50,7 @@ import javax.servlet.jsp.JspException;
 @ExtensionTag(
     baseClassName = "org.apache.myfaces.tobago.internal.taglib.InTag",
     faceletHandler = "org.apache.myfaces.tobago.facelets.extension.InExtensionHandler")
-public class InExtensionTag extends TobagoExtensionBodyTagSupport {
-
-  private ValueExpression binding;
-  private ValueExpression converter;
-  private MethodExpression validator;
-  private ValueExpression disabled;
-  private ValueExpression focus;
-  private ValueExpression label;
-  private ValueExpression password;
-  private ValueExpression readonly;
-  private ValueExpression rendered;
-  private ValueExpression required;
-  private ValueExpression tip;
-  private ValueExpression placeholder;
-  private ValueExpression value;
-  private MethodExpression valueChangeListener;
-  private ValueExpression onchange;
-  @Deprecated
-  private MethodExpression suggestMethod;
-  @Deprecated
-  private ValueExpression suggestMinChars;
-  @Deprecated
-  private ValueExpression suggestDelay;
-  private ValueExpression markup;
-  private ValueExpression labelWidth;
-  private ValueExpression tabIndex;
-  private ValueExpression validatorMessage;
-  private ValueExpression converterMessage;
-  private ValueExpression requiredMessage;
-  private String fieldId;
-
-  private LabelExtensionTag labelTag;
-  private InTag inTag;
-
-  @Override
-  public int doStartTag() throws JspException {
-
-    labelTag = new LabelExtensionTag();
-    labelTag.setPageContext(pageContext);
-    if (id != null) {
-      labelTag.setId(id);
-    }
-    if (label != null) {
-      labelTag.setValue(label);
-    }
-    if (tip != null) {
-      labelTag.setTip(tip);
-    }
-    if (rendered != null) {
-      labelTag.setRendered(rendered);
-    }
-    if (labelWidth != null) {
-      labelTag.setColumns(createStringValueExpression(labelWidth.getExpressionString() + ";*"));
-    }
-    if (markup != null) {
-      labelTag.setMarkup(markup);
-    }
-    labelTag.setParent(getParent());
-    labelTag.setJspId(nextJspId());
-    labelTag.doStartTag();
-
-    inTag = new InTag();
-    inTag.setPageContext(pageContext);
-    if (value != null) {
-      inTag.setValue(value);
-    }
-    if (valueChangeListener != null) {
-      inTag.setValueChangeListener(valueChangeListener);
-    }
-    if (label != null) {
-      inTag.setLabel(label);
-    }
-    if (placeholder != null) {
-      inTag.setPlaceholder(placeholder);
-    }
-    if (binding != null) {
-      inTag.setBinding(binding);
-    }
-    if (converter != null) {
-      inTag.setConverter(converter);
-    }
-    if (validator != null) {
-      inTag.setValidator(validator);
-    }
-    if (onchange != null) {
-      inTag.setOnchange(onchange);
-    }
-    if (suggestMethod != null) {
-      inTag.setSuggestMethod(suggestMethod);
-    }
-    if (suggestMinChars != null) {
-      inTag.setSuggestMinChars(suggestMinChars);
-    }
-    if (suggestDelay != null) {
-      inTag.setSuggestDelay(suggestDelay);
-    }
-    if (disabled != null) {
-      inTag.setDisabled(disabled);
-    }
-    if (focus != null) {
-      inTag.setFocus(focus);
-    }
-    if (fieldId != null) {
-      inTag.setId(fieldId);
-    }
-    if (password != null) {
-      inTag.setPassword(password);
-    }
-    if (readonly != null) {
-      inTag.setReadonly(readonly);
-    }
-    if (required != null) {
-      inTag.setRequired(required);
-    }
-    if (markup != null) {
-      inTag.setMarkup(markup);
-    }
-    if (tabIndex != null) {
-      inTag.setTabIndex(tabIndex);
-    }
-    if (validatorMessage != null) {
-      inTag.setValidatorMessage(validatorMessage);
-    }
-    if (converterMessage != null) {
-      inTag.setConverterMessage(converterMessage);
-    }
-    if (requiredMessage != null) {
-      inTag.setRequiredMessage(requiredMessage);
-    }
-    inTag.setParent(labelTag);
-    inTag.setJspId(nextJspId());
-    inTag.doStartTag();
-
-    return super.doStartTag();
-  }
-
-  @Override
-  public int doEndTag() throws JspException {
-    inTag.doEndTag();
-    labelTag.doEndTag();
-    return super.doEndTag();
-  }
-
-  private static final Logger LOG = LoggerFactory.getLogger(InExtensionTag.class);
-
-  @Override
-  public void release() {
-    super.release();
-    binding = null;
-    converter = null;
-    validator = null;
-    disabled = null;
-    labelWidth = null;
-    focus = null;
-    label = null;
-    password = null;
-    readonly = null;
-    rendered = null;
-    required = null;
-    tip = null;
-    placeholder = null;
-    value = null;
-    valueChangeListener = null;
-    onchange = null;
-    suggestMethod = null;
-    suggestMinChars = null;
-    suggestDelay = null;
-    markup = null;
-    tabIndex = null;
-    inTag = null;
-    labelTag = null;
-    validatorMessage = null;
-    converterMessage = null;
-    requiredMessage = null;
-    fieldId = null;
-  }
+public interface InExtensionTag {
 
   /**
    * Indicate markup of this component.
@@ -237,35 +58,27 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute(defaultValue = "none", type = "java.lang.String[]")
-  public void setMarkup(final ValueExpression markup) {
-    this.markup = markup;
-  }
+  public void setMarkup(final ValueExpression markup);
 
   /**
    * The current value of this component.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Object")
-  public void setValue(final ValueExpression value) {
-    this.value = value;
-  }
+  public void setValue(final ValueExpression value);
 
   /**
    * MethodExpression representing a value change listener method
    * that will be notified when a new value has been set for this input component.
    * The expression must evaluate to a public method that takes a ValueChangeEvent
    * parameter, with a return type of void.
-   *
-   * @param valueChangeListener
    */
   @TagAttribute
   @UIComponentTagAttribute(
       type = {},
       expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
       methodSignature = "javax.faces.event.ValueChangeEvent")
-  public void setValueChangeListener(final MethodExpression valueChangeListener) {
-    this.valueChangeListener = valueChangeListener;
-  }
+  public void setValueChangeListener(final MethodExpression valueChangeListener) ;
 
   /**
    * Text value to display as label.
@@ -273,18 +86,14 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabel(final ValueExpression label) {
-    this.label = label;
-  }
+  public void setLabel(final ValueExpression label);
 
   /**
    * Flag indicating this component should receive the focus.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setFocus(final ValueExpression focus) {
-    this.focus = focus;
-  }
+  public void setFocus(final ValueExpression focus);
 
   /**
    * The value binding expression linking this
@@ -292,9 +101,7 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  public void setBinding(final ValueExpression binding) {
-    this.binding = binding;
-  }
+  public void setBinding(final ValueExpression binding);
 
   /**
    * Flag indicating whether or not this component should be rendered
@@ -302,9 +109,7 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setRendered(final ValueExpression rendered) {
-    this.rendered = rendered;
-  }
+  public void setRendered(final ValueExpression rendered);
 
   /**
    * An expression that specifies the Converter for this component.
@@ -318,18 +123,14 @@ public class InExtensionTag extends Toba
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.convert.Converter",
       expression = DynamicExpression.VALUE_EXPRESSION)
-  public void setConverter(final ValueExpression converter) {
-    this.converter = converter;
-  }
+  public void setConverter(final ValueExpression converter);
 
   /**
    * Clientside script function to add to this component's onchange handler.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setOnchange(final ValueExpression onchange) {
-    this.onchange = onchange;
-  }
+  public void setOnchange(final ValueExpression onchange);
 
   /**
    * MethodBinding which generates a list of suggested input values based on
@@ -345,9 +146,7 @@ public class InExtensionTag extends Toba
   @UIComponentTagAttribute(type = {},
       expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
       methodSignature = "javax.faces.component.UIInput")
-  public void setSuggestMethod(final MethodExpression suggestMethod) {
-    this.suggestMethod = suggestMethod;
-  }
+  public void setSuggestMethod(final MethodExpression suggestMethod);
 
   /**
    * Minimum number of chars to type before the list will be requested.
@@ -358,9 +157,7 @@ public class InExtensionTag extends Toba
   @Deprecated
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Integer", defaultValue = "1")
-  public void setSuggestMinChars(final ValueExpression suggestMinChars) {
-    this.suggestMinChars = suggestMinChars;
-  }
+  public void setSuggestMinChars(final ValueExpression suggestMinChars) ;
 
   /**
    * Time in milli seconds before the list will be requested.
@@ -371,9 +168,7 @@ public class InExtensionTag extends Toba
   @Deprecated
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Integer", defaultValue = "300")
-  public void setSuggestDelay(final ValueExpression suggestDelay) {
-    this.suggestDelay = suggestDelay;
-  }
+  public void setSuggestDelay(final ValueExpression suggestDelay);
 
   /**
    * A method binding EL expression,
@@ -385,9 +180,7 @@ public class InExtensionTag extends Toba
   @UIComponentTagAttribute(type = {},
       expression = DynamicExpression.METHOD_EXPRESSION,
       methodSignature = {"javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object"})
-  public void setValidator(final MethodExpression validator) {
-    this.validator = validator;
-  }
+  public void setValidator(final MethodExpression validator);
 
   /**
    * Flag indicating whether or not this component should be rendered as
@@ -395,27 +188,21 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setPassword(final ValueExpression password) {
-    this.password = password;
-  }
+  public void setPassword(final ValueExpression password);
 
   /**
    * Flag indicating that this component will prohibit changes by the user.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setReadonly(final ValueExpression readonly) {
-    this.readonly = readonly;
-  }
+  public void setReadonly(final ValueExpression readonly);
 
   /**
    * Flag indicating that this element is disabled.
    */
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setDisabled(final ValueExpression disabled) {
-    this.disabled = disabled;
-  }
+  public void setDisabled(final ValueExpression disabled);
 
   /**
    * Flag indicating that a value is required.
@@ -424,18 +211,14 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setRequired(final ValueExpression required) {
-    this.required = required;
-  }
+  public void setRequired(final ValueExpression required);
 
   /**
    * Text value to display as tooltip.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setTip(final ValueExpression tip) {
-    this.tip = tip;
-  }
+  public void setTip(final ValueExpression tip);
 
   /**
    * Displays a short text in the input field, that describes the meaning of this field.
@@ -443,9 +226,7 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setPlaceholder(final ValueExpression placeholder) {
-    this.placeholder = placeholder;
-  }
+  public void setPlaceholder(final ValueExpression placeholder);
 
   /**
    * The width for the label component. Default: 'auto'.
@@ -454,42 +235,32 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabelWidth(final ValueExpression labelWidth) {
-    this.labelWidth = labelWidth;
-  }
+  public void setLabelWidth(final ValueExpression labelWidth);
 
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Integer")
-  public void setTabIndex(final ValueExpression tabIndex) {
-    this.tabIndex = tabIndex;
-  }
+  public void setTabIndex(final ValueExpression tabIndex);
 
   /**
    * An expression that specifies the validator message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setValidatorMessage(final ValueExpression validatorMessage) {
-    this.validatorMessage = validatorMessage;
-  }
+  public void setValidatorMessage(final ValueExpression validatorMessage) ;
 
   /**
    * An expression that specifies the converter message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setConverterMessage(final ValueExpression converterMessage) {
-    this.converterMessage = converterMessage;
-  }
+  public void setConverterMessage(final ValueExpression converterMessage) ;
 
   /**
    * An expression that specifies the required message
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setRequiredMessage(final ValueExpression requiredMessage) {
-    this.requiredMessage = requiredMessage;
-  }
+  public void setRequiredMessage(final ValueExpression requiredMessage) ;
 
   /**
    * The component identifier for the input field component inside of the container.
@@ -497,9 +268,7 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFieldId(final String fieldId) {
-    this.fieldId = fieldId;
-  }
+  public void setFieldId(final String fieldId);
 
   /**
    * The component identifier for this component.
@@ -509,7 +278,5 @@ public class InExtensionTag extends Toba
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setId(final String id) {
-    super.setId(id);
-  }
+  public void setId(final String id);
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuCheckboxExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuCheckboxExtensionTag.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuCheckboxExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuCheckboxExtensionTag.java Tue Apr 15 09:13:03 2014
@@ -24,16 +24,6 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.component.Facets;
-import org.apache.myfaces.tobago.internal.component.AbstractUICommandBase;
-import org.apache.myfaces.tobago.internal.taglib.MenuCommandTag;
-import org.apache.myfaces.tobago.internal.taglib.SelectBooleanCheckboxTag;
-import org.apache.myfaces.tobago.internal.util.StringUtils;
-
-import javax.faces.component.UIComponent;
-import javax.faces.webapp.FacetTag;
-import javax.servlet.jsp.JspException;
 
 /**
  * Renders a menu item like a check box.
@@ -47,141 +37,13 @@ import javax.servlet.jsp.JspException;
  *   &lt;/f:facet>
  * &lt;/tc:menuCommand></pre>
  */
-@Tag(
-    name = "menuCheckbox",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "menuCheckbox")
 @ExtensionTag(
     baseClassName = "org.apache.myfaces.tobago.internal.taglib.component.MenuCheckboxTag",
     componentType = "org.apache.myfaces.tobago.MenuCommand",
     rendererType = "MenuCommand",
     faceletHandler = "org.apache.myfaces.tobago.facelets.extension.MenuCheckboxExtensionHandler")
-public class MenuCheckboxExtensionTag extends TobagoExtensionBodyTagSupport {
-  private javax.el.ValueExpression rendered;
-  private javax.el.ValueExpression value;
-
-  private MenuCommandTag menuCommandTag;
-  private SelectBooleanCheckboxTag inTag;
-  private FacetTag facetTag;
-  private javax.el.MethodExpression action;
-  private javax.el.MethodExpression actionListener;
-  private javax.el.ValueExpression onclick;
-  private javax.el.ValueExpression link;
-  private javax.el.ValueExpression disabled;
-  private javax.el.ValueExpression binding;
-  private javax.el.ValueExpression label;
-  private javax.el.ValueExpression immediate;
-  private javax.el.ValueExpression transition;
-  private javax.el.ValueExpression renderedPartially;
-  private String fieldId;
-
-  @Override
-  public int doStartTag() throws JspException {
-
-    menuCommandTag = new MenuCommandTag();
-    menuCommandTag.setPageContext(pageContext);
-    menuCommandTag.setParent(getParent());
-    if (id != null) {
-      menuCommandTag.setId(id);
-    }
-    if (rendered != null) {
-      menuCommandTag.setRendered(rendered);
-    }
-    if (action != null) {
-      menuCommandTag.setAction(action);
-    }
-    if (actionListener != null) {
-      menuCommandTag.setActionListener(actionListener);
-    }
-    if (onclick != null) {
-      menuCommandTag.setOnclick(onclick);
-    }
-    if (link != null) {
-      menuCommandTag.setLink(link);
-    }
-    if (disabled != null) {
-      menuCommandTag.setDisabled(disabled);
-    }
-    if (binding != null) {
-      menuCommandTag.setBinding(binding);
-    }
-    if (label != null) {
-      menuCommandTag.setLabel(label);
-    }
-    if (immediate != null) {
-      menuCommandTag.setImmediate(immediate);
-    }
-    if (transition != null) {
-      menuCommandTag.setTransition(transition);
-    }
-    if (renderedPartially != null) {
-      menuCommandTag.setRenderedPartially(renderedPartially);
-    }
-    menuCommandTag.setJspId(nextJspId());
-    menuCommandTag.doStartTag();
-
-    facetTag = new FacetTag();
-    facetTag.setPageContext(pageContext);
-    facetTag.setParent(menuCommandTag);
-    facetTag.setName(Facets.CHECKBOX);
-
-    facetTag.doStartTag();
-    inTag = new SelectBooleanCheckboxTag();
-    inTag.setPageContext(pageContext);
-    inTag.setParent(facetTag);
-    if (value != null) {
-      inTag.setValue(value);
-    }
-    if (fieldId != null) {
-      inTag.setId(fieldId);
-    }
-    inTag.setJspId(nextJspId());
-    inTag.doStartTag();
-
-    return super.doStartTag();
-  }
-
-  @Override
-  public int doEndTag() throws JspException {
-
-    if (renderedPartially == null) {
-      // Move attribute renderedPartially from selectOne to menuCommand component
-      final UIComponent inComponent = inTag.getComponentInstance();
-      final AbstractUICommandBase command = (AbstractUICommandBase) menuCommandTag.getComponentInstance();
-      final javax.el.ValueExpression expression = inComponent.getValueExpression(Attributes.RENDERED_PARTIALLY);
-      if (expression != null) {
-        command.setValueExpression(Attributes.RENDERED_PARTIALLY, expression);
-      } else {
-        final Object renderedPartially = inComponent.getAttributes().get(Attributes.RENDERED_PARTIALLY);
-        command.setRenderedPartially(StringUtils.split((String) renderedPartially, ", "));
-      }
-    }
-
-    inTag.doEndTag();
-    facetTag.doEndTag();
-    menuCommandTag.doEndTag();
-
-    return super.doEndTag();
-  }
-
-  public void release() {
-    super.release();
-    rendered = null;
-    value = null;
-    action = null;
-    actionListener = null;
-    onclick = null;
-    link = null;
-    disabled = null;
-    binding = null;
-    label = null;
-    immediate = null;
-    transition = null;
-    renderedPartially = null;
-    fieldId = null;
-    menuCommandTag = null;
-    facetTag = null;
-    inTag = null;
-  }
+public interface MenuCheckboxExtensionTag {
 
   /**
    * Action to invoke when clicked.
@@ -195,9 +57,7 @@ public class MenuCheckboxExtensionTag ex
   @TagAttribute
   @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION,
       methodReturnType = "java.lang.Object")
-  public void setAction(final javax.el.MethodExpression action) {
-    this.action = action;
-  }
+  public void setAction(final javax.el.MethodExpression action) ;
 
   /**
    * MethodExpression representing an action listener method that will be
@@ -208,9 +68,7 @@ public class MenuCheckboxExtensionTag ex
   @TagAttribute
   @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
       methodSignature = "javax.faces.event.ActionEvent")
-  public void setActionListener(final javax.el.MethodExpression actionListener) {
-    this.actionListener = actionListener;
-  }
+  public void setActionListener(final javax.el.MethodExpression actionListener) ;
 
   /**
    * Script to be invoked when clicked
@@ -219,9 +77,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setOnclick(final javax.el.ValueExpression onclick) {
-    this.onclick = onclick;
-  }
+  public void setOnclick(final javax.el.ValueExpression onclick) ;
 
   /**
    * Link to an arbitrary URL
@@ -230,9 +86,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLink(final javax.el.ValueExpression link) {
-    this.link = link;
-  }
+  public void setLink(final javax.el.ValueExpression link) ;
 
   /**
    * The value binding expression linking this
@@ -240,9 +94,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  public void setBinding(final javax.el.ValueExpression binding) throws JspException {
-    this.binding = binding;
-  }
+  public void setBinding(final javax.el.ValueExpression binding);
 
   /**
    * Flag indicating whether or not this component should be rendered
@@ -250,27 +102,21 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setRendered(final javax.el.ValueExpression rendered) {
-    this.rendered = rendered;
-  }
+  public void setRendered(final javax.el.ValueExpression rendered) ;
 
   /**
    * Flag indicating that this element is disabled.
    */
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setDisabled(final javax.el.ValueExpression disabled) {
-    this.disabled = disabled;
-  }
+  public void setDisabled(final javax.el.ValueExpression disabled) ;
 
   /**
    * The current value of this component.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Object")
-  public void setValue(final javax.el.ValueExpression value) {
-    this.value = value;
-  }
+  public void setValue(final javax.el.ValueExpression value) ;
 
   /**
    * Text value to display as label.
@@ -278,9 +124,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabel(final javax.el.ValueExpression label) {
-    this.label = label;
-  }
+  public void setLabel(final javax.el.ValueExpression label) ;
 
   /**
    * Flag indicating that, if this component is activated by the user,
@@ -290,9 +134,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setImmediate(final javax.el.ValueExpression immediate) {
-    this.immediate = immediate;
-  }
+  public void setImmediate(final javax.el.ValueExpression immediate) ;
 
   /**
    * Specify, if the command calls an JSF-Action.
@@ -302,18 +144,14 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setTransition(final javax.el.ValueExpression transition) {
-    this.transition = transition;
-  }
+  public void setTransition(final javax.el.ValueExpression transition) ;
 
   /**
    * Indicate the partially rendered Components in a case of a submit.
    */
    @TagAttribute
    @UIComponentTagAttribute(type = "java.lang.String[]")
-  public void setRenderedPartially(final javax.el.ValueExpression renderedPartially) {
-    this.renderedPartially = renderedPartially;
-  }
+  public void setRenderedPartially(final javax.el.ValueExpression renderedPartially) ;
 
   /**
    * The component identifier for the input field component inside of the container.
@@ -321,9 +159,7 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFieldId(final String fieldId) {
-    this.fieldId = fieldId;
-  }
+  public void setFieldId(final String fieldId) ;
 
   /**
    * The component identifier for this component.
@@ -333,7 +169,5 @@ public class MenuCheckboxExtensionTag ex
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setId(final String id) {
-    super.setId(id);
-  }
+  public void setId(final String id) ;
 }

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuRadioExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuRadioExtensionTag.java?rev=1587479&r1=1587478&r2=1587479&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuRadioExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/extension/MenuRadioExtensionTag.java Tue Apr 15 09:13:03 2014
@@ -24,16 +24,6 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.component.Facets;
-import org.apache.myfaces.tobago.internal.component.AbstractUICommandBase;
-import org.apache.myfaces.tobago.internal.taglib.MenuCommandTag;
-import org.apache.myfaces.tobago.internal.taglib.SelectOneRadioTag;
-import org.apache.myfaces.tobago.internal.util.StringUtils;
-
-import javax.faces.component.UIComponent;
-import javax.faces.webapp.FacetTag;
-import javax.servlet.jsp.JspException;
 
 /**
  * Renders menu items like radio buttons (select one).
@@ -51,147 +41,13 @@ import javax.servlet.jsp.JspException;
  *   &lt;/f:facet>
  * &lt;/tc:menuCommand></pre>
  */
-@Tag(
-    name = "menuRadio",
-    tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
+@Tag(name = "menuRadio")
 @ExtensionTag(
     baseClassName = "org.apache.myfaces.tobago.internal.taglib.MenuRadioTag",
     componentType = "org.apache.myfaces.tobago.MenuCommand",
     rendererType = "MenuCommand",
     faceletHandler = "org.apache.myfaces.tobago.facelets.extension.MenuRadioExtensionHandler")
-public class MenuRadioExtensionTag extends TobagoExtensionBodyTagSupport {
-
-  private javax.el.ValueExpression rendered;
-  private javax.el.ValueExpression value;
-
-  private MenuCommandTag menuCommandTag;
-  private SelectOneRadioTag inTag;
-  private FacetTag facetTag;
-  private javax.el.MethodExpression action;
-  private javax.el.MethodExpression actionListener;
-  private javax.el.ValueExpression onclick;
-  private javax.el.ValueExpression link;
-  private javax.el.ValueExpression disabled;
-  private javax.el.ValueExpression binding;
-  private javax.el.ValueExpression label;
-  private javax.el.ValueExpression immediate;
-  private javax.el.ValueExpression transition;
-  private javax.el.ValueExpression converter;
-  private javax.el.ValueExpression renderedPartially;
-  private String fieldId;
-
-  @Override
-  public int doStartTag() throws JspException {
-
-    menuCommandTag = new MenuCommandTag();
-    menuCommandTag.setPageContext(pageContext);
-    menuCommandTag.setParent(getParent());
-    if (id != null) {
-      menuCommandTag.setId(id);
-    }
-    if (rendered != null) {
-      menuCommandTag.setRendered(rendered);
-    }
-    if (action != null) {
-      menuCommandTag.setAction(action);
-    }
-    if (actionListener != null) {
-      menuCommandTag.setActionListener(actionListener);
-    }
-    if (onclick != null) {
-      menuCommandTag.setOnclick(onclick);
-    }
-    if (link != null) {
-      menuCommandTag.setLink(link);
-    }
-    if (disabled != null) {
-      menuCommandTag.setDisabled(disabled);
-    }
-    if (binding != null) {
-      menuCommandTag.setBinding(binding);
-    }
-    if (label != null) {
-      menuCommandTag.setLabel(label);
-    }
-    if (immediate != null) {
-      menuCommandTag.setImmediate(immediate);
-    }
-    if (transition != null) {
-      menuCommandTag.setTransition(transition);
-    }
-    if (renderedPartially != null) {
-      menuCommandTag.setRenderedPartially(renderedPartially);
-    }
-    menuCommandTag.setJspId(nextJspId());
-    menuCommandTag.doStartTag();
-
-    facetTag = new FacetTag();
-    facetTag.setPageContext(pageContext);
-    facetTag.setParent(menuCommandTag);
-    facetTag.setName(Facets.RADIO);
-
-    facetTag.doStartTag();
-    inTag = new SelectOneRadioTag();
-    inTag.setPageContext(pageContext);
-    inTag.setParent(facetTag);
-    if (converter != null) {
-      inTag.setConverter(converter);
-    }
-    if (value != null) {
-      inTag.setValue(value);
-    }
-    if (fieldId != null) {
-      inTag.setId(fieldId);
-    }
-    inTag.setJspId(nextJspId());
-    inTag.doStartTag();
-
-    return super.doStartTag();
-  }
-
-  @Override
-  public int doEndTag() throws JspException {
-
-    if (renderedPartially == null) {
-      // Move attribute renderedPartially from selectOne to menuCommand component
-      final UIComponent inComponent = inTag.getComponentInstance();
-      final AbstractUICommandBase command = (AbstractUICommandBase) menuCommandTag.getComponentInstance();
-      final javax.el.ValueExpression expression = inComponent.getValueExpression(Attributes.RENDERED_PARTIALLY);
-      if (expression != null) {
-        command.setValueExpression(Attributes.RENDERED_PARTIALLY, expression);
-      } else {
-        final Object renderedPartially = inComponent.getAttributes().get(Attributes.RENDERED_PARTIALLY);
-        command.setRenderedPartially(StringUtils.split((String) renderedPartially, ", "));
-      }
-    }
-
-    inTag.doEndTag();
-    facetTag.doEndTag();
-    menuCommandTag.doEndTag();
-
-    return super.doEndTag();
-  }
-
-  public void release() {
-    super.release();
-    rendered = null;
-    value = null;
-    action = null;
-    actionListener = null;
-    onclick = null;
-    link = null;
-    disabled = null;
-    binding = null;
-    label = null;
-    immediate = null;
-    transition = null;
-    converter = null;
-    renderedPartially = null;
-    fieldId = null;
-    menuCommandTag = null;
-    facetTag = null;
-    inTag = null;
-  }
+public interface MenuRadioExtensionTag {
 
   /**
    * Action to invoke when clicked.
@@ -205,9 +61,7 @@ public class MenuRadioExtensionTag exten
   @TagAttribute
   @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION,
       methodReturnType = "java.lang.Object")
-  public void setAction(final javax.el.MethodExpression action) {
-    this.action = action;
-  }
+  public void setAction(final javax.el.MethodExpression action) ;
 
   /**
    * MethodExpression representing an action listener method that will be
@@ -218,27 +72,21 @@ public class MenuRadioExtensionTag exten
   @TagAttribute
   @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
       methodSignature = "javax.faces.event.ActionEvent")
-  public void setActionListener(final javax.el.MethodExpression actionListener) {
-    this.actionListener = actionListener;
-  }
+  public void setActionListener(final javax.el.MethodExpression actionListener) ;
 
   /**
    * Script to be invoked when clicked
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setOnclick(final javax.el.ValueExpression onclick) {
-    this.onclick = onclick;
-  }
+  public void setOnclick(final javax.el.ValueExpression onclick) ;
 
   /**
    * Link to an arbitrary URL
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLink(final javax.el.ValueExpression link) {
-    this.link = link;
-  }
+  public void setLink(final javax.el.ValueExpression link) ;
 
   /**
    * The value binding expression linking this
@@ -246,9 +94,7 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
-  public void setBinding(final javax.el.ValueExpression binding) throws JspException {
-    this.binding = binding;
-  }
+  public void setBinding(final javax.el.ValueExpression binding);
 
   /**
    * Flag indicating whether or not this component should be rendered
@@ -256,27 +102,21 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setRendered(final javax.el.ValueExpression rendered) {
-    this.rendered = rendered;
-  }
+  public void setRendered(final javax.el.ValueExpression rendered) ;
 
   /**
    * Flag indicating that this element is disabled.
    */
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setDisabled(final javax.el.ValueExpression disabled) {
-    this.disabled = disabled;
-  }
+  public void setDisabled(final javax.el.ValueExpression disabled) ;
 
   /**
    * The current value of this component.
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "java.lang.Object")
-  public void setValue(final javax.el.ValueExpression value) {
-    this.value = value;
-  }
+  public void setValue(final javax.el.ValueExpression value) ;
 
   /**
    * Text value to display as label.
@@ -284,9 +124,7 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  public void setLabel(final javax.el.ValueExpression label) {
-    this.label = label;
-  }
+  public void setLabel(final javax.el.ValueExpression label) ;
 
   /**
    * Flag indicating that, if this component is activated by the user,
@@ -296,9 +134,7 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  public void setImmediate(final javax.el.ValueExpression immediate) {
-    this.immediate = immediate;
-  }
+  public void setImmediate(final javax.el.ValueExpression immediate) ;
 
   /**
    * Specify, if the command calls an JSF-Action.
@@ -308,9 +144,7 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute
   @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
-  public void setTransition(final javax.el.ValueExpression transition) {
-    this.transition = transition;
-  }
+  public void setTransition(final javax.el.ValueExpression transition) ;
 
   /**
    * An expression that specifies the Converter for this component.
@@ -324,18 +158,14 @@ public class MenuRadioExtensionTag exten
   @TagAttribute
   @UIComponentTagAttribute(type = "javax.faces.convert.Converter",
       expression = DynamicExpression.VALUE_EXPRESSION)
-  public void setConverter(final javax.el.ValueExpression converter) {
-    this.converter = converter;
-  }
+  public void setConverter(final javax.el.ValueExpression converter) ;
 
   /**
    * Indicate the partially rendered Components in a case of a submit.
    */
    @TagAttribute
    @UIComponentTagAttribute(type = "java.lang.String[]")
-  public void setRenderedPartially(final javax.el.ValueExpression renderedPartially) {
-    this.renderedPartially = renderedPartially;
-  }
+  public void setRenderedPartially(final javax.el.ValueExpression renderedPartially) ;
 
   /**
    * The component identifier for the input field component inside of the container.
@@ -343,9 +173,7 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setFieldId(final String fieldId) {
-    this.fieldId = fieldId;
-  }
+  public void setFieldId(final String fieldId) ;
 
   /**
    * The component identifier for this component.
@@ -355,7 +183,5 @@ public class MenuRadioExtensionTag exten
    */
   @TagAttribute(rtexprvalue = true)
   @UIComponentTagAttribute
-  public void setId(final String id) {
-    super.setId(id);
-  }
+  public void setId(final String id) ;
 }