01: /*
02: * $Id: Delta.java 8077 2007-08-27 20:15:25Z aperepel $
03: * --------------------------------------------------------------------------------------
04: * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
05: *
06: * The software in this package is published under the terms of the CPAL v1.0
07: * license, a copy of which has been included with this distribution in the
08: * LICENSE.txt file.
09: */
10:
11: package org.mule.util.counters.impl;
12:
13: import org.mule.util.counters.CounterFactory.Type;
14:
15: public class Delta extends AggregateCounter {
16:
17: private double first = 0.0;
18: private double second = 0.0;
19:
20: public Delta(String name, AbstractCounter base) {
21: super (name, Type.DELTA, base);
22: }
23:
24: public double nextValue() {
25: if (Double.isNaN(first) || Double.isNaN(second)) {
26: return Double.NaN;
27: } else {
28: return second - first > 0.0 ? second - first : 0.0;
29: }
30: }
31:
32: public void doCompute() {
33: first = second;
34: second = this.getBase().nextValue();
35: }
36:
37: }
|