Package railo.runtime.tag

Source Code of railo.runtime.tag.Stopwatch

package railo.runtime.tag;

import java.io.IOException;

import railo.runtime.dump.DumpTable;
import railo.runtime.dump.DumpWriter;
import railo.runtime.dump.SimpleDumpData;
import railo.runtime.exp.PageException;
import railo.runtime.ext.tag.BodyTagImpl;

/**
* Stops the time from starttag to endtag
*
*
*
**/
public final class Stopwatch extends BodyTagImpl {

  private String label;
  private long time;
    private String variable;

  @Override
  public void release()  {
    super.release();
    label=null;
    time=0L;
    variable=null;
  }

  /** Label of the Stopwatch
  * @param label sets the Label of the Stopwatch
  **/
  public void setLabel(String label)  {
    this.label=label;
  }

  /**
   * Variable Name to write result to it
   * @param variable  variable name
   */
  public void setVariable(String variable)  {
    this.variable=variable;
  }


  @Override
  public int doStartTag()  {
    time=System.currentTimeMillis();
    return EVAL_BODY_INCLUDE;
  }

  @Override
  public int doEndTag() throws PageException  {
    long exe = (System.currentTimeMillis()-time);
   
    if(variable!=null) {
        pageContext.setVariable(variable,new Double(exe));
    }
    else {
      DumpTable table = new DumpTable("#ff9900","#ffcc00","#000000");
      table.appendRow(1,new SimpleDumpData(label==null?"Stopwatch":label),new SimpleDumpData(exe));
      DumpWriter writer=pageContext.getConfig().getDefaultDumpWriter(DumpWriter.DEFAULT_RICH);
      try {
       
        pageContext.forceWrite(writer.toString(pageContext,table,true));
      }
      catch (IOException e) {}
    }
    return EVAL_PAGE;
  }

  @Override
  public void doInitBody()  {
   
  }

  @Override
  public int doAfterBody()  {
    return SKIP_BODY;
  }
}
TOP

Related Classes of railo.runtime.tag.Stopwatch

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.