1
2
3
4
5
6
7 package org.mule.util.counters.impl;
8
9 import org.mule.util.counters.CounterFactory.Type;
10
11 public class Delta extends AggregateCounter
12 {
13
14 private double first = 0.0;
15 private double second = 0.0;
16
17 public Delta(String name, AbstractCounter base)
18 {
19 super(name, Type.DELTA, base);
20 }
21
22 public double nextValue()
23 {
24 if (Double.isNaN(first) || Double.isNaN(second))
25 {
26 return Double.NaN;
27 }
28 else
29 {
30 return second - first > 0.0 ? second - first : 0.0;
31 }
32 }
33
34 public void doCompute()
35 {
36 first = second;
37 second = this.getBase().nextValue();
38 }
39
40 }