package org.gridkit.jvmtool.stacktrace.analytics;
import java.lang.Thread.State;
import org.gridkit.jvmtool.stacktrace.ThreadSnapshot;
class ThreadStateAggregatorFactory implements ThreadDumpAggregator, ThreadDumpAggregatorFactory {
private final State state;
public ThreadStateAggregatorFactory(State state) {
this.state = state;
}
@Override
public ThreadDumpAggregator newInstance() {
return new ThreadStateAggregatorFactory(state);
}
long total;
long matched;
@Override
public void aggregate(ThreadSnapshot threadInfo) {
++total;
if (threadInfo.threadState() == state) {
++matched;
}
}
@Override
public Object info() {
return ((double)matched) / total;
}
}