use of lucee.runtime.dump.DumpTable in project Lucee by lucee.
the class QueryUtil method toDumpData.
public static DumpData toDumpData(Query query, PageContext pageContext, int maxlevel, DumpProperties dp) {
maxlevel--;
Collection.Key[] keys = CollectionUtil.keys(query);
DumpData[] heads = new DumpData[keys.length + 1];
// int tmp=1;
heads[0] = new SimpleDumpData("");
for (int i = 0; i < keys.length; i++) {
heads[i + 1] = new SimpleDumpData(keys[i].getString());
}
StringBuilder comment = new StringBuilder();
// table.appendRow(1, new SimpleDumpData("SQL"), new SimpleDumpData(sql.toString()));
String template = query.getTemplate();
if (!StringUtil.isEmpty(template))
comment.append("Template: ").append(template).append("\n");
// table.appendRow(1, new SimpleDumpData("Template"), new SimpleDumpData(template));
// in Query dump maxlevel is used as Top
int top = dp.getMaxlevel();
comment.append("Execution Time: ").append(Caster.toString(FormatUtil.formatNSAsMSDouble(query.getExecutionTime()))).append(" ms \n");
comment.append("Record Count: ").append(Caster.toString(query.getRecordcount()));
if (query.getRecordcount() > top)
comment.append(" (showing top ").append(Caster.toString(top)).append(")");
comment.append("\n");
comment.append("Cached: ").append(query.isCached() ? "Yes\n" : "No\n");
if (query.isCached() && query instanceof Query) {
comment.append("Cache Type: ").append(query.getCacheType()).append("\n");
}
comment.append("Lazy: ").append(query instanceof SimpleQuery ? "Yes\n" : "No\n");
SQL sql = query.getSql();
if (sql != null)
comment.append("SQL: ").append("\n").append(StringUtil.suppressWhiteSpace(sql.toString().trim())).append("\n");
// table.appendRow(1, new SimpleDumpData("Execution Time (ms)"), new SimpleDumpData(exeTime));
// table.appendRow(1, new SimpleDumpData("recordcount"), new SimpleDumpData(getRecordcount()));
// table.appendRow(1, new SimpleDumpData("cached"), new SimpleDumpData(isCached()?"Yes":"No"));
DumpTable recs = new DumpTable("query", "#cc99cc", "#ffccff", "#000000");
recs.setTitle("Query");
if (dp.getMetainfo())
recs.setComment(comment.toString());
recs.appendRow(new DumpRow(-1, heads));
// body
DumpData[] items;
int recordcount = query.getRecordcount();
int columncount = query.getColumnNames().length;
for (int i = 0; i < recordcount; i++) {
items = new DumpData[columncount + 1];
items[0] = new SimpleDumpData(i + 1);
for (int y = 0; y < keys.length; y++) {
try {
Object o = query.getAt(keys[y], i + 1);
if (o instanceof String)
items[y + 1] = new SimpleDumpData(o.toString());
else if (o instanceof Number)
items[y + 1] = new SimpleDumpData(Caster.toString(((Number) o)));
else if (o instanceof Boolean)
items[y + 1] = new SimpleDumpData(((Boolean) o).booleanValue());
else if (o instanceof Date)
items[y + 1] = new SimpleDumpData(Caster.toString(o));
else if (o instanceof Clob)
items[y + 1] = new SimpleDumpData(Caster.toString(o));
else
items[y + 1] = DumpUtil.toDumpData(o, pageContext, maxlevel, dp);
} catch (PageException e) {
items[y + 1] = new SimpleDumpData("[empty]");
}
}
recs.appendRow(new DumpRow(1, items));
if (i == top - 1)
break;
}
if (!dp.getMetainfo())
return recs;
// table.appendRow(1, new SimpleDumpData("result"), recs);
return recs;
}
use of lucee.runtime.dump.DumpTable in project Lucee by lucee.
the class StructUtil method toDumpTable.
public static DumpTable toDumpTable(Struct sct, String title, PageContext pageContext, int maxlevel, DumpProperties dp) {
Key[] keys = CollectionUtil.keys(sct);
if (!(sct instanceof StructSupport) || ((StructSupport) sct).getType() != Struct.TYPE_LINKED)
keys = order(sct, CollectionUtil.keys(sct));
// "#9999ff","#ccccff","#000000"
DumpTable table = new DumpTable("struct", "#9999ff", "#ccccff", "#000000");
int maxkeys = dp.getMaxKeys();
if (maxkeys < sct.size()) {
table.setComment("Entries: " + sct.size() + " (showing top " + maxkeys + ")");
} else if (sct.size() > 10 && dp.getMetainfo()) {
table.setComment("Entries: " + sct.size());
}
if (!StringUtil.isEmpty(title))
table.setTitle(title);
maxlevel--;
int index = 0;
for (int i = 0; i < keys.length; i++) {
if (DumpUtil.keyValid(dp, maxlevel, keys[i])) {
if (maxkeys <= index++)
break;
table.appendRow(1, new SimpleDumpData(keys[i].toString()), DumpUtil.toDumpData(sct.get(keys[i], null), pageContext, maxlevel, dp));
}
}
return table;
}
use of lucee.runtime.dump.DumpTable in project Lucee by lucee.
the class ArgumentImpl method toDumpData.
@Override
public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp) {
DumpTable htmlBox = new DumpTable("struct", "#9999ff", "#ccccff", "#000000");
htmlBox.setTitle("Scope Arguments");
if (size() > 10 && dp.getMetainfo())
htmlBox.setComment("Entries:" + size());
maxlevel--;
// Map mapx=getMap();
// mapx.keySet().iterator();
Iterator<Key> it = keyIterator();
int count = 0;
Collection.Key key;
int maxkeys = dp.getMaxKeys();
int index = 0;
while (it.hasNext()) {
// it.next();
key = it.next();
if (DumpUtil.keyValid(dp, maxlevel, key)) {
if (maxkeys <= index++)
break;
htmlBox.appendRow(3, new SimpleDumpData(key.getString()), new SimpleDumpData(++count), DumpUtil.toDumpData(get(key, null), pageContext, maxlevel, dp));
}
}
return htmlBox;
}
use of lucee.runtime.dump.DumpTable in project Lucee by lucee.
the class ClosureScope method toDumpData.
@Override
public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties properties) {
DumpTable dt = (DumpTable) super.toDumpData(pageContext, maxlevel, properties);
dt.setTitle("Closure Variable Scope");
return dt;
}
use of lucee.runtime.dump.DumpTable in project Lucee by lucee.
the class XMLAttributes method toDumpData.
@Override
public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp) {
Collection.Key[] keys = keys();
maxlevel--;
DumpTable table = new DumpTable("xml", "#999966", "#cccc99", "#000000");
table.setTitle("Struct (XML Attributes)");
int maxkeys = dp.getMaxKeys();
int index = 0;
Collection.Key k;
for (int i = 0; i < keys.length; i++) {
k = keys[i];
if (DumpUtil.keyValid(dp, maxlevel, k)) {
if (maxkeys <= index++)
break;
table.appendRow(1, new SimpleDumpData(k.getString()), DumpUtil.toDumpData(get(k.getString(), null), pageContext, maxlevel, dp));
}
}
return table;
}
Aggregations