001package org.javasimon.jmx; 002 003import org.javasimon.Counter; 004import org.javasimon.Simon; 005 006/** 007 * MX Bean representing a particular {@link org.javasimon.Counter}. It is not created 008 * by default when JMX is activated - it must be created explicitly. 009 * {@link JmxRegisterCallback} can be used to automate this. 010 * <p/> 011 * Class can be subclassed to override default behavior if desired, {@link #counter} is declared protected for this reason. 012 * 013 * @author <a href="mailto:virgo47@gmail.com">Richard "Virgo" Richter</a> 014 */ 015public class CounterMXBeanImpl extends AbstractSimonMXBeanImpl implements CounterMXBean { 016 017 /** Wrapped {@link Counter} instance - protected for subclasses. */ 018 protected Counter counter; 019 020 /** 021 * Creates the MX bean for the provided Counter. 022 * 023 * @param counter wrapped Counter 024 */ 025 public CounterMXBeanImpl(Counter counter) { 026 this.counter = counter; 027 } 028 029 @Override 030 public final void increase() { 031 counter.increase(); 032 } 033 034 @Override 035 public final void decrease() { 036 counter.decrease(); 037 } 038 039 @Override 040 public final void increase(long inc) { 041 counter.increase(inc); 042 } 043 044 @Override 045 public final void decrease(long dec) { 046 counter.decrease(dec); 047 } 048 049 @Override 050 public long getMaxTimestamp() { 051 return counter.getMaxTimestamp(); 052 } 053 054 @Override 055 public long getMax() { 056 return counter.getMax(); 057 } 058 059 @Override 060 public long getMinTimestamp() { 061 return counter.getMinTimestamp(); 062 } 063 064 @Override 065 public long getMin() { 066 return counter.getMin(); 067 } 068 069 @Override 070 public long getCounter() { 071 return counter.getCounter(); 072 } 073 074 @Override 075 public final void set(long val) { 076 counter.set(val); 077 } 078 079 @Override 080 public long getIncrementSum() { 081 return counter.getIncrementSum(); 082 } 083 084 @Override 085 public long getDecrementSum() { 086 return counter.getDecrementSum(); 087 } 088 089 @Override 090 public final CounterSample sample() { 091 return new CounterSample(counter.sample()); 092 } 093 094 @Override 095 public CounterSample sampleIncrement(String key) { 096 return new CounterSample(counter.sampleIncrement(key)); 097 } 098 099 @Override 100 public final String getType() { 101 return SimonInfo.COUNTER; 102 } 103 104 @Override 105 public boolean stopIncrementalSampling(String key) { 106 return counter.stopIncrementalSampling(key); 107 } 108 109 @Override 110 protected final Simon simon() { 111 return counter; 112 } 113}