Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5827 amar.kumar 1
/*
2
 *	Copyright 2005 stat4j.org
3
 *
4
 *   Licensed under the Apache License, Version 2.0 (the "License");
5
 *   you may not use this file except in compliance with the License.
6
 *	You may obtain a copy of the License at
7
 *
8
 *       http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 *   Unless required by applicable law or agreed to in writing, software
11
 *   distributed under the License is distributed on an "AS IS" BASIS,
12
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 *   See the License for the specific language governing permissions and
14
 *   limitations under the License.
15
 */
16
package net.sourceforge.stat4j.calculators;
17
 
18
import java.util.Properties;
19
 
20
import net.sourceforge.stat4j.Metric;
21
 
22
 
23
/**
24
 * Name:		Average.java
25
 * Date:		Aug 29, 2004
26
 * Description:
27
 * 
28
 * 
29
 * @author Lara D'Abreo
30
 */
31
public class Average extends CalculatorAdapter {
32
 
33
	protected double totalValue;
34
	protected long numberOfReadings;
35
	protected double average;
36
 
37
	/**
38
	 * 
39
	 */
40
	public Average() {
41
		reset();
42
	}
43
 
44
 
45
	public void applyMetric(Metric metric) {
46
 
47
 
48
		double value;
49
		if (metric.isSingle()) {
50
			value = metric.getReading(getStatistic().getUnit());
51
		} else {
52
			value = metric.getReadingDelta(getStatistic().getUnit());
53
 
54
		}
55
		setTimestamp(metric.getTimestamp());
56
		applyValue(value);
57
 
58
	}
59
 
60
	protected void applyValue(double value) {
61
		totalValue = totalValue + value;
62
 
63
		// inc number of readings
64
		numberOfReadings = numberOfReadings + 1;
65
 
66
		// calculate average
67
		average = totalValue / numberOfReadings;
68
	}
69
 
70
	public double getResult() {
71
		return average;
72
	}
73
 
74
	public void reset() {
75
		this.totalValue = 0.0;
76
		this.numberOfReadings = 0;
77
		this.average = 0.0;
78
	}
79
 
80
	public void init(String name, Properties properties) {
81
		super.init(name);
82
	}
83
 
84
}