Package com.allaire.cfx

Source Code of com.allaire.cfx.DebugResponse

package com.allaire.cfx;

import java.util.Enumeration;
import java.util.Hashtable;

import railo.loader.engine.CFMLEngineFactory;
import railo.runtime.cfx.QueryWrap;



/**
*
*/
public final class DebugResponse implements Response {
 
  private StringBuffer write=new StringBuffer();
  private StringBuffer writeDebug=new StringBuffer();
  private Hashtable variables=new Hashtable();
  private Hashtable queries=new Hashtable();
 
 
  /**
   * @see com.allaire.cfx.Response#addQuery(java.lang.String, java.lang.String[])
   */
  public Query addQuery(String name, String[] columns) {
    QueryWrap query = new QueryWrap(CFMLEngineFactory.getInstance().getCreationUtil().createQuery(columns,0,name),name.toLowerCase());
    queries.put(name.toLowerCase(),query);
    return query;
  }

    /**
   * @see com.allaire.cfx.Response#setVariable(java.lang.String, java.lang.String)
   */
  public void setVariable(String key, String value) {
    variables.put(key.toLowerCase(),value);
  }

  /**
   * @see com.allaire.cfx.Response#write(java.lang.String)
   */
  public void write(String str) {
    write.append(str);
  }

  /**
   * @see com.allaire.cfx.Response#writeDebug(java.lang.String)
   */
  public void writeDebug(String str) {
    writeDebug.append(str);
  }
 
  /**
   *  print out the response
   */
  public void printResults() {
    System.out.println("[ --- Railo Debug Response --- ]");
    System.out.println();
   
    System.out.println("----------------------------");
    System.out.println("|          Output          |");
    System.out.println("----------------------------");
    System.out.println(write);
    System.out.println();
   
    System.out.println("----------------------------");
    System.out.println("|       Debug Output       |");
    System.out.println("----------------------------");
    System.out.println(writeDebug);
    System.out.println();
   
    System.out.println("----------------------------");
    System.out.println("|        Variables         |");
    System.out.println("----------------------------");
   
    Enumeration e = variables.keys();
    while(e.hasMoreElements()) {
      Object key=e.nextElement();
      System.out.println("[Variable:"+key+"]");
      System.out.println(escapeString(variables.get(key).toString()));
    }
    System.out.println();
   
    e = queries.keys();
    while(e.hasMoreElements()) {
      Query query=(Query) queries.get(e.nextElement());
      printQuery(query);
      System.out.println();
    }
   
  }
 
  /**
   * print out a query
   * @param query
   */
  public void printQuery(Query query) {
    if(query!=null) {
      String[] cols = query.getColumns();
      int rows = query.getRowCount();
      System.out.println("[Query:"+query.getName()+"]");
      for(int i=0;i<cols.length;i++) {
        if(i>0)System.out.print(", ");
        System.out.print(cols[i]);
      }
      System.out.println();
     
      for(int row=1;row<=rows;row++) {
        for(int col=1;col<=cols.length;col++) {
          if(col>1)System.out.print(", ");
          System.out.print(escapeString(query.getData(row,col)));
        }
        System.out.println();
      }
    }
  }
 
  private String escapeString(String string) {
    int len=string.length();
    StringBuffer sb=new StringBuffer(len);
    for(int i=0;i<len;i++) {
      char c=string.charAt(i);
      if(c=='\n')sb.append("\\n");
      else if(c=='\t')sb.append("\\t");
      else if(c=='\\')sb.append("\\\\");
      else if(c=='\b')sb.append("\\b");
      else if(c=='\r')sb.append("\\r");
      else if(c=='\"')sb.append("\\\"");
      else sb.append(c);
    }
   
   
   
    return "\""+sb.toString()+"\"";
  }

 
}
TOP

Related Classes of com.allaire.cfx.DebugResponse

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.