
de.mcs.jmeasurement.renderer.MeasurementReporter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of JMeasurement Show documentation
Show all versions of JMeasurement Show documentation
JMeasurement profiling programs in production enviroment
The newest version!
/**
* MCS Media Computer Software
* Copyright 2015 by Wilfried Klaas
* Project: JMeasurement
* File: MeasurementReporter.java
* EMail: [email protected]
* Created: 24.11.2015 wklaa_000
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
*/
package de.mcs.jmeasurement.renderer;
import java.io.IOException;
import java.io.Writer;
import de.mcs.jmeasurement.DefaultMeasurePoint;
import de.mcs.jmeasurement.JMConfig;
import de.mcs.jmeasurement.MeasurePoint;
import de.mcs.jmeasurement.MeasurePoint.PRIORITY;
import de.mcs.jmeasurement.SnapShot;
import de.mcs.jmeasurement.exception.RendererMustNotBeNullException;
/**
* @author wklaa_000
*
*/
public class MeasurementReporter {
private MeasurePoint[] points;
private SnapShot[] snapshots;
private PRIORITY priority;
private JMConfig config;
public MeasurementReporter(JMConfig config, MeasurePoint[] points, SnapShot[] snapshots) {
this.points = points;
this.snapshots = snapshots;
this.config = config;
}
public void setPriority(PRIORITY priority) {
this.priority = priority;
}
public PRIORITY getPriority() {
return priority;
}
public void getReport(final String pointname, final MeasureDataRenderer renderer, final Writer output)
throws RendererMustNotBeNullException, IOException {
if (renderer == null) {
throw new RendererMustNotBeNullException("renderer must not be null");
}
if (renderer instanceof MeasureDataRendererPage) {
output.write(((MeasureDataRendererPage) renderer).getReportHeader());
output.write(((MeasureDataRendererPage) renderer).beginPage());
}
if (renderer instanceof MeasureDataRendererColumnHeader) {
output.write(((MeasureDataRendererColumnHeader) renderer)
.getColumnHeaderAsString(new DefaultMeasurePoint("empty", config)));
}
for (int i = 0; i < points.length; i++) {
if (points[i].getPriority().compareTo(getPriority()) >= 0) {
output.write(renderer.getDataAsString(points[i], ""));
}
}
if (renderer instanceof MeasureDataRendererPage) {
output.write(((MeasureDataRendererPage) renderer).endPage());
}
if ((snapshots != null) && (snapshots.length > 0) && (renderer instanceof MeasureDataRendererSnapshot)) {
for (SnapShot snapshot : snapshots) {
MeasurePoint[] points = snapshot.getMeasurePoints(pointname);
MeasurementReporter snapshotReporter = new MeasurementReporter(config, points, null);
snapshotReporter.setPriority(getPriority());
snapshotReporter.getSnapshotReport(snapshot, renderer, output);
}
}
if (renderer instanceof MeasureDataRendererPage) {
output.write(((MeasureDataRendererPage) renderer).getReportFooter());
}
}
public void getSnapshotReport(final SnapShot snapshot, final MeasureDataRenderer renderer, final Writer output)
throws RendererMustNotBeNullException, IOException {
if (renderer == null) {
throw new RendererMustNotBeNullException("renderer must not be null");
}
if (renderer instanceof MeasureDataRendererSnapshot) {
output.write(((MeasureDataRendererSnapshot) renderer).startSnapShot(snapshot));
}
if (renderer instanceof MeasureDataRendererPage) {
output.write(((MeasureDataRendererPage) renderer).beginPage());
}
if (renderer instanceof MeasureDataRendererColumnHeader) {
output.write(
((MeasureDataRendererColumnHeader) renderer).getColumnHeaderAsString(new DefaultMeasurePoint("empty", null)));
}
for (int i = 0; i < points.length; i++) {
if (points[i].getPriority().compareTo(priority) >= 0) {
output.write(renderer.getDataAsString(points[i], "s" + Integer.toString(snapshot.getId())));
}
}
if (renderer instanceof MeasureDataRendererPage) {
output.write(((MeasureDataRendererPage) renderer).endPage());
}
if (renderer instanceof MeasureDataRendererSnapshot) {
output.write(((MeasureDataRendererSnapshot) renderer).endSnapShot(snapshot));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy