
// Copyright (c) 1999, 2000 Oracle Corporation
package oracle.jbo.html.jsp.datatags;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import oracle.jbo.*;
import oracle.jdeveloper.html.*;

import oracle.jbo.html.jsp.JSPApplicationRegistry;

/**
 * A Class class.
 * <P>
 * @author Juan Oropeza
 */
public class RollbackTag extends TagSupport
{
   String sAppName;
   
   /**
    * Constructor
    */
   public RollbackTag() {
   }

   public void setAppid(String sAppName)
   {
    this.sAppName = sAppName;
   }

  /**
  * Process the start tag for this instance.
  *
  * The doStartTag() method assumes that all setter methods have been
  * invoked before.
  *
  * When this method is invoked, the body has not yet been invoked.
  *
  * @returns EVAL_BODY_INCLUDE if the tag wants to process body, SKIP_BODY if it
  * does ont want to process it.
  */
  public int doStartTag() throws JspException
  {
    try
    {
      ApplicationModule am = JSPApplicationRegistry
         .getInstance()
         .getAppModuleFromContexts(sAppName, pageContext.getSession(), pageContext);

      am.getTransaction().rollback();
    }
    catch(Exception ex)
    {
      throw new JspException(ex.getMessage());
    }
    return Tag.EVAL_BODY_INCLUDE;
  }

  /**
  * release() called after doEndTag() to reset state
  */
  public void release()
  {
    super.release();

    sAppName = null;
  }
}

 