@Override public LoggingResult trim() throws IOException { LoggingResult result = new LoggingResult(wrapped.trim(), log); log.write("result["); log.write(Long.toString(result.id)); log.write("] = result["); log.write(Long.toString(id)); log.write("].trim();\n"); log.flush(); return result; } }
@Override public void writeTo(Writer out) throws IOException { log.write("result["); log.write(Long.toString(id)); log.write("].writeTo("); log(out); log.write(");\n"); log.flush(); wrapped.writeTo(out); }
@Override public LoggingResult getResult() throws IllegalStateException, IOException { if(result==null) { result = new LoggingResult(wrapped.getResult(), log); log.write("result["); log.write(Long.toString(result.id)); log.write("] = writer["); log.write(Long.toString(id)); log.write("].getResult();\n"); log.flush(); } return result; } }
@Override public void writeTo(Writer out, long off, long len) throws IOException { log.write("result["); log.write(Long.toString(id)); log.write("].writeTo("); log(out); log.write(", "); log.write(Long.toString(off)); log.write(", "); log.write(Long.toString(len)); log.write(");\n"); log.flush(); wrapped.writeTo(out, off, len); }
@Override public void writeTo(Encoder encoder, Writer out, long off, long len) throws IOException { log.write("result["); log.write(Long.toString(id)); log.write("].writeTo("); log(encoder); log.write(", "); log(out); log.write(", "); log.write(Long.toString(off)); log.write(", "); log.write(Long.toString(len)); log.write(");\n"); log.flush(); wrapped.writeTo(encoder, out, off, len); }
/** * Provides detailed logging for a writer. */ private void log(Writer writer) throws IOException { if(writer==null) { log.write("null"); } else if(writer instanceof LoggingWriter) { LoggingWriter loggingWriter = (LoggingWriter)writer; log.write("writer["); log.write(Long.toString(loggingWriter.getId())); log.write(']'); } else if(writer instanceof EncoderWriter) { EncoderWriter encoderWriter = (EncoderWriter)writer; log.write("new EncoderWriter("); log(encoderWriter.getEncoder()); log.write(", "); log(encoderWriter.getOut()); log.write(')'); } else { String classname = writer.getClass().getName(); if(classname.equals("org.apache.jasper.runtime.BodyContentImpl")) log.write("bodyContent"); else if(classname.equals("org.apache.jasper.runtime.JspWriterImpl")) log.write("jspWriter"); else log.write(classname); } }