Inspector | Message | Severity | Location |
---|---|---|---|
Java Inspector 048 | Copyrights information should be present in each file. | 1 | |
Java Inspector 073 [java.lang.StringBuffer] | In Java 5 use StringBuilder instead of StringBuffer if access is single-threaded, e.g. StringBuffer is used as a local variable . | 2 | 187:17 |
Java Inspector 089 | Type is not documented | 2 | 41:1 |
Java Inspector 089 | Undocumented constructor | 2 | 59:9 |
Java Inspector 089 | Undocumented constructor | 2 | 63:9 |
Java Inspector 089 | Parameter master is not documented | 2 | 73:9 |
Java Inspector 089 | Undocumented method | 2 | 93:5 |
Java Inspector 089 | Undocumented method | 2 | 97:5 |
Java Inspector 089 | Undocumented method | 2 | 101:5 |
Java Inspector 089 | Undocumented method | 2 | 105:5 |
Java Inspector 089 | Undocumented method | 2 | 109:5 |
Java Inspector 089 | Undocumented method | 2 | 113:5 |
Java Inspector 089 | Undocumented method | 2 | 136:33 |
Java Inspector 089 | Undocumented method | 2 | 140:33 |
Java Inspector 089 | Undocumented method | 2 | 149:5 |
Java Inspector 089 | Undocumented method | 2 | 178:9 |
Java Inspector 089 | Undocumented method | 2 | 182:9 |
Java Inspector 089 | Undocumented method | 2 | 186:9 |
Java Inspector 089 | Undocumented method | 2 | 208:9 |
Java Inspector 089 | Undocumented method | 2 | 216:9 |
Java Inspector 089 | Undocumented method | 2 | 220:9 |
Java Inspector 089 | Undocumented method | 2 | 224:5 |
Java Inspector 089 | Undocumented method | 2 | 228:9 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 189:33 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 191:33 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 193:33 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 198:44 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 200:44 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 202:44 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 229:37 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 230:29 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 231:29 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 232:37 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 234:29 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 235:29 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 236:37 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 243:78 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 245:49 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 246:49 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 59:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 63:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 73:9 |
Java Inspector 054 | Discourage usage of instance variables like a, j by enforcing minimal variable name length (3). | 3 | 57:9 |
1/*
2 * hgcommons 9
3 * Hammurapi Group Common Library
4 * Copyright (C) 2003 Hammurapi Group
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * URL: http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/products/hgcommons/index.html
21 * e-Mail: support@hammurapi.biz
22 */
23package biz.hammurapi.metrics;
24
25import java.io.Serializable;
26import java.util.ArrayList;
27import java.util.Collection;
28import java.util.Date;
29import java.util.Iterator;
30import java.util.List;
31
32import org.w3c.dom.Element;
33
34import biz.hammurapi.xml.dom.DomSerializable;
35
36/**
37 * @author Pavel Vlasov
38 *
39 * @version $Revision: 1.4 $
40 */
41public class SimpleSlice implements Slice, Serializable, DomSerializable {
42
43 /**
44 * Comment for <code>serialVersionUID</code>
45 */
46 private static final long serialVersionUID = 6148347920575353798L;
47
48 private String name;
49 private boolean keepMeasurements;
50 private int measurements;
51 private double total;
52 private double min;
53 private double max;
54 private double deviation;
55 private List measurementsList;
56 private long from;
57 private long to;
58
59 public SimpleSlice(String name) {
60 this(name, false);
61 }
62
63 public SimpleSlice(String name, boolean keepMeasurements) {
64 this.name=name;
65 this.keepMeasurements=keepMeasurements;
66 measurementsList=new ArrayList();
67 }
68
69 /**
70 * Constructs a copy of master slice.
71 * @param master
72 */
73 public SimpleSlice(Slice master) {
74 name = master.getName();
75 measurements = master.getNumber();
76 total = master.getTotal();
77 min = master.getMin();
78 max = master.getMax();
79 deviation = master.getDeviation();
80 from = master.getFrom();
81 to = master.getTo();
82
83 if (master.getMeasurements()!=null && !master.getMeasurements().isEmpty()) {
84 keepMeasurements = true;
85 measurementsList = new ArrayList();
86 Iterator it = master.getMeasurements().iterator();
87 while (it.hasNext()) {
88 measurementsList.add(new SimpleMeasurement((Measurement) it.next()));
89 }
90 }
91 }
92
93 public int getNumber() {
94 return measurements;
95 }
96
97 public double getMin() {
98 return min;
99 }
100
101 public double getMax() {
102 return max;
103 }
104
105 public double getAvg() {
106 return total/measurements;
107 }
108
109 public double getTotal() {
110 return total;
111 }
112
113 public void add(final double value, final long time) {
114 if (measurements==0 || value<min) {
115 min=value;
116 }
117
118 if (measurements==0 || value>max) {
119 max=value;
120 }
121
122 if (measurements==0 || from>time) {
123 from=time;
124 }
125
126 if (measurements==0 || to<time) {
127 to=time;
128 }
129
130 total+=value;
131 measurements++;
132 deviation+=Math.abs(value-total/measurements);
133
134 if (keepMeasurements) {
135 class PrivateMeasurement implements Measurement, Serializable {
136 public double getValue() {
137 return value;
138 }
139
140 public long getTime() {
141 return time;
142 }
143 }
144
145 measurementsList.add(new PrivateMeasurement());
146 }
147 }
148
149 public void add(Metric metric) {
150 if (measurements==0 || metric.getMin()<min) {
151 min=metric.getMin();
152 }
153
154 if (measurements==0 || metric.getMax()>max) {
155 max=metric.getMax();
156 }
157
158 if (metric instanceof Slice) {
159 Slice slice=(Slice) metric;
160 if (measurements==0 || from>slice.getFrom()) {
161 from=slice.getFrom();
162 }
163
164 if (measurements==0 || to<slice.getTo()) {
165 to=slice.getTo();
166 }
167 }
168
169 measurements+=metric.getNumber();
170 total+=metric.getTotal();
171 deviation+=metric.getDeviation()*metric.getNumber();
172
173 if (keepMeasurements) {
174 measurementsList.addAll(metric.getMeasurements());
175 }
176 }
177
178 public Collection getMeasurements() {
179 return measurementsList;
180 }
181
182 public String getName() {
183 return name;
184 }
185
186 public String toString() {
187 StringBuffer ret=new StringBuffer();
188 ret.append(measurements)
189 .append("/")
190 .append(total)
191 .append(" <= ")
192 .append(name)
193 .append("\n");
194 if (measurementsList!=null) {
195 Iterator it=measurementsList.iterator();
196 while (it.hasNext()) {
197 Measurement m=(Measurement) it.next();
198 ret.append("\t");
199 ret.append(m.getValue());
200 ret.append(" <- ");
201 ret.append(new Date(m.getTime()));
202 ret.append("\n");
203 }
204 }
205 return ret.toString();
206 }
207
208 public int compareTo(Object o) {
209 if (o instanceof Slice) {
210 return Double.compare(((Slice) o).getTotal(), total);
211 }
212
213 return 1;
214 }
215
216 public long getFrom() {
217 return from;
218 }
219
220 public long getTo() {
221 return to;
222 }
223
224 public double getDeviation() {
225 return deviation/measurements;
226 }
227
228 public void toDom(Element holder) {
229 holder.setAttribute("name", getName());
230 holder.setAttribute("avg", String.valueOf(getAvg()));
231 holder.setAttribute("min", String.valueOf(getMin()));
232 holder.setAttribute("max", String.valueOf(getMax()));
233
234 holder.setAttribute("total", String.valueOf(getTotal()));
235 holder.setAttribute("number", String.valueOf(getNumber()));
236 holder.setAttribute("deviation", String.valueOf(getDeviation()));
237
238 Collection measurements = getMeasurements();
239 if (measurements!=null) {
240 Iterator it=measurements.iterator();
241 while (it.hasNext()) {
242 Measurement ms=(Measurement) it.next();
243 Element me = holder.getOwnerDocument().createElement("measurement");
244 holder.appendChild(me);
245 me.setAttribute("value", String.valueOf(ms.getValue()));
246 me.setAttribute("time", String.valueOf(ms.getTime()));
247 }
248 }
249 }
250}
251