Package railo.runtime.tag

Source Code of railo.runtime.tag.Error

package railo.runtime.tag;

import railo.runtime.PageSource;
import railo.runtime.err.ErrorPageImpl;
import railo.runtime.exp.ExpressionException;
import railo.runtime.exp.MissingIncludeException;
import railo.runtime.ext.tag.TagImpl;

/**
* Enables the display of customized HTML pages when errors occur. This lets you maintain a
*   consistent look and feel within your application, even when errors occur.
*
*
*
**/
public final class Error extends TagImpl {


  private ErrorPageImpl errorPage=new ErrorPageImpl();


 
  @Override
  public void release()  {
    super.release();
    errorPage=new ErrorPageImpl();
    //exception="any";
    //template=null;
    //mailto="";
   
  }

  /** set the value exception
  *  Type of exception. Required if type = "exception" or "monitor".
  * @param exception value to set
  **/
  public void setException(String exception)  {
    errorPage.setTypeAsString(exception.toLowerCase().trim());
    //this.exception=exception.toLowerCase().trim();
  }

  /** set the value type
  *  The type of error that the custom error page handles.
  * @param type value to set
   * @throws ExpressionException
  **/
  public void setType(String type) throws ExpressionException  {
    type=type.toLowerCase().trim();
    if(type.equals("exception")) {
      errorPage.setType(ErrorPageImpl.TYPE_EXCEPTION);
    }
    else if(type.equals("request")) {
      errorPage.setType(ErrorPageImpl.TYPE_REQUEST);
    }
    //else if(type.equals("validation")) this.type=VALIDATION;
    else throw new ExpressionException("invalid type ["+type+"] for tag error, use one of the following types [exception,request]");
  }

  /** set the value template
  *  The relative path to the custom error page.
  * @param template value to set
  * @throws MissingIncludeException
  **/
  public void setTemplate(String template) throws MissingIncludeException  {
      PageSource sf=pageContext.getCurrentPageSource().getRealPage(template);
      //new PageSource(pageContext.getCurrentTemplateSourceFile(),template);
    if(!sf.exists())
      throw new MissingIncludeException(sf);
    errorPage.setTemplate(sf);
  }
 
  /** set the value mailto
  *  The e-mail address of the administrator to notify of the error. The value
  *   is available to your custom error page in the MailTo property of the error object.
  * @param mailto value to set
  **/
  public void setMailto(String mailto)  {
    errorPage.setMailto(mailto);
  }


  @Override
  public int doStartTag()  {
    if(errorPage.getType()==ErrorPageImpl.TYPE_REQUEST) errorPage.setException("any");
    pageContext.setErrorPage(errorPage);
    return SKIP_BODY;
  }

  @Override
  public int doEndTag()  {
    return EVAL_PAGE;
  }
}
TOP

Related Classes of railo.runtime.tag.Error

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.