private Element tableElement(List<Snapshot<?, ?>> snapshots) { Document document = DocumentHelper.createDocument(); Element htmlElement = document.addElement("html"); Element headElement = addElement(htmlElement, "head", null); Element linkElement = addElement(headElement, "link", null); addAttributes( linkElement, new String[] {"href", "rel", "type", "media"}, new String[] {IConstants.STYLE_SHEET, "stylesheet", "text/css", "screen"}); Element bodyElement = addElement(linkElement, "body", null); Element tableElement = addElement(bodyElement, "table", null); Element headerRowElement = addElement(tableElement, "tr", null); String periods = "no periods"; if (snapshots.size() > 0) { SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); Snapshot<?, ?> firstSnapshot = snapshots.get(0); Snapshot<?, ?> lastSnapshot = snapshots.get(snapshots.size() - 1); String start = dateFormat.format(firstSnapshot.getStart()); String end = dateFormat.format(lastSnapshot.getStart()); StringBuilder builder = new StringBuilder(start); builder.append(" to "); builder.append(end); //noinspection ConstantConditions if (firstSnapshot != null && firstSnapshot.getEnd() != null && firstSnapshot.getStart() != null) { long intervals = firstSnapshot.getEnd().getTime() - firstSnapshot.getStart().getTime(); builder.append(", at intervals of : "); builder.append(intervals); builder.append(" ms."); } periods = builder.toString(); } Element headerElement = addElement(headerRowElement, "th", "Period from : " + periods); addAttributes(headerElement, new String[] {"colspan"}, new String[] {"9"}); Element rowElement = addElement(tableElement, "tr", null); addElement(rowElement, "th", "Class"); addElement(rowElement, "th", "Method"); addElement(rowElement, "th", "Time"); addElement(rowElement, "th", "Net time"); addElement(rowElement, "th", "Delta time"); addElement(rowElement, "th", "Net delta time"); addElement(rowElement, "th", "Invocations"); addElement(rowElement, "th", "Graph"); addElement(rowElement, "th", "Delta draph"); return tableElement; }