001package org.javasimon.console;
002
003import org.javasimon.Counter;
004import org.javasimon.CounterSample;
005import org.javasimon.Sample;
006import org.javasimon.Simon;
007import org.javasimon.Stopwatch;
008import org.javasimon.StopwatchSample;
009import org.javasimon.UnknownSample;
010
011/**
012 * Simon type enumeration
013 *
014 * @author gquintana
015 */
016public enum SimonType {
017
018        STOPWATCH(Stopwatch.class, StopwatchSample.class), COUNTER(Counter.class, CounterSample.class), UNKNOWN(Simon.class, UnknownSample.class);
019        /**
020         * Simon Interface
021         */
022        private final Class<? extends Simon> type;
023        /**
024         * Sample interface
025         */
026        private final Class<? extends Sample> sampleType;
027
028        private SimonType(Class<? extends Simon> type, Class<? extends Sample> sampleType) {
029                this.type = type;
030                this.sampleType = sampleType;
031        }
032
033        public Class<? extends Simon> getType() {
034                return type;
035        }
036
037        public Class<? extends Sample> getSampleType() {
038                return sampleType;
039        }
040}