01: /*
02: * $Id: Report.java,v 1.1 2006/03/01 17:48:04 azzazzel Exp $
03: *
04: * Copyright 2006 Commsen International
05: *
06: * Licensed under the Common Public License, Version 1.0 (the "License");
07: * you may not use this file except in compliance with the License.
08: * You may obtain a copy of the License at
09: *
10: * http://www.opensource.org/licenses/cpl1.0.txt
11: *
12: * THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13: * EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS
14: * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
15: *
16: */
17: package com.commsen.stopwatch;
18:
19: import java.io.Serializable;
20:
21: /**
22: * Basic stopwatch report.
23: * All reports generated by stopwatch storages should implement this interface.
24: *
25: * @author Milen Dyankov
26: *
27: */
28: public interface Report extends Serializable {
29:
30: /**
31: * Information about the group for which this report was generated.
32: * If <code>null</code> then this is summary report for given lebel (as
33: * returned by {@link #getLabel()}) in all groups.
34: *
35: * @return the name of the group
36: */
37: public String getGroup();
38:
39: /**
40: * Information about the label for which this report was generated.
41: * If <code>null</code> then this is summary report for all lebels in given group (as
42: * returned by {@link #getGroup()}).
43: *
44: * @return the label
45: */
46: public String getLabel();
47:
48: /**
49: * The minimal of all completed measurements for this label and/or group
50: * @return minimal of all times measured
51: */
52: public double getMinTime();
53:
54: /**
55: * The maximal of all completed measurements for this label and/or group
56: * @return maximal of all completed measurements
57: */
58: public double getMaxTime();
59:
60: /**
61: * The average of all completed measurements for this label and/or group
62: * @return average of all completed measurements
63: */
64: public double getAverageTime();
65:
66: /**
67: * The sum of all completed measurements for this label and/or group
68: * @return sum of all completed measurements
69: */
70: public double getTotalTime();
71:
72: /**
73: * The number of all completed measurements for this label and/or group
74: * @return number of all completed measurements
75: */
76: public long getCount();
77:
78: }
|