package io.ebeaninternal.server.core;

import io.ebean.meta.AbstractMetricVisitor;
import io.ebean.meta.BasicMetricVisitor;
import io.ebean.meta.MetaCountMetric;
import io.ebean.meta.MetaInfoManager;
import io.ebean.meta.MetaQueryMetric;
import io.ebean.meta.MetaQueryPlan;
import io.ebean.meta.MetaTimedMetric;
import io.ebean.meta.MetricData;
import io.ebean.meta.MetricVisitor;
import io.ebean.meta.QueryPlanInit;
import io.ebean.meta.QueryPlanRequest;
import io.ebean.meta.ServerMetrics;
import io.ebean.meta.ServerMetricsAsJson;

import java.util.List;

DefaultServer based implementation of MetaInfoManager.
/** * DefaultServer based implementation of MetaInfoManager. */
public class DefaultMetaInfoManager implements MetaInfoManager { private final DefaultServer server; DefaultMetaInfoManager(DefaultServer server) { this.server = server; } @Override public List<MetaQueryPlan> queryPlanInit(QueryPlanInit initRequest) { return server.queryPlanInit(initRequest); } @Override public List<MetaQueryPlan> queryPlanCollectNow(QueryPlanRequest request) { return server.queryPlanCollectNow(request); } @Override public void visitMetrics(MetricVisitor visitor) { server.visitMetrics(visitor); } @Override public ServerMetrics collectMetrics() { return visitBasic(); } @Override public ServerMetricsAsJson collectMetricsAsJson() { return new DumpMetricsJson(server); } @Override public List<MetricData> collectMetricsAsData() { return new DumpMetricsData(server).data(); } @Override public BasicMetricVisitor visitBasic() { BasicMetricVisitor basic = new BasicMetricVisitor(); visitMetrics(basic); return basic; } @Override public void resetAllMetrics() { server.visitMetrics(new ResetVisitor()); }
Visitor that resets the statistics but doesn't collect them.
/** * Visitor that resets the statistics but doesn't collect them. */
private static class ResetVisitor extends AbstractMetricVisitor { ResetVisitor() { super(true, true, true, true); } @Override public void visitTimed(MetaTimedMetric metric) { // ignore } @Override public void visitQuery(MetaQueryMetric metric) { // ignore } @Override public void visitCount(MetaCountMetric metric) { // ignore } } }