001package io.ebean.meta;
002
003/**
004 * Defines visitor to read and report the transaction and query metrics.
005 */
006public interface MetricVisitor {
007
008  /**
009   * Return true if the metrics should be reset.
010   */
011  boolean isReset();
012
013  /**
014   * Return true if we should visit the transaction metrics.
015   */
016  boolean isCollectTransactionMetrics();
017
018  /**
019   * Return true if we should visit the ORM and SQL query metrics.
020   */
021  boolean isCollectQueryMetrics();
022
023  /**
024   * Visit has started.
025   */
026  void visitStart();
027
028  /**
029   * Visit transaction metrics (and L2 cache metrics in future).
030   */
031  void visitTimed(MetaTimedMetric metric);
032
033  /**
034   * Visit DTO and SQL query metrics.
035   */
036  void visitQuery(MetaQueryMetric metric);
037
038  /**
039   * Visit ORM query metrics.
040   */
041  void visitOrmQuery(MetaOrmQueryMetric metric);
042
043  /**
044   * Visit has completed.
045   */
046  void visitEnd();
047
048}