001package com.avaje.ebean.meta;
002
003import java.util.List;
004
005/**
006 * Provides access to the meta data in EbeanServer such as query execution statistics.
007 */
008public interface MetaInfoManager {
009
010  /**
011   * Return the MetaBeanInfo for a bean type.
012   */
013  MetaBeanInfo getMetaBeanInfo(Class<?> beanClass);
014
015  /**
016   * Return all the MetaBeanInfo.
017   */
018  List<MetaBeanInfo> getMetaBeanInfoList();
019
020  /**
021   * Collect and return the query plan statistics for all the beans.
022   * <p>
023   * Note that this excludes the query plan statistics where there has been no
024   * executions (since the last collection with reset).
025   * </p>
026   */
027  List<MetaQueryPlanStatistic> collectQueryPlanStatistics(boolean reset);
028
029  /**
030   * Collect and return the ObjectGraphNode statistics.
031   * <p>
032   * These show query executions based on an origin point and relative path.
033   * This is used to look at the amount of lazy loading occurring for a given
034   * query origin point and highlight potential for tuning a query.
035   * </p>
036   * 
037   * @param reset
038   *          Set to true to reset the underlying statistics after collection.
039   */
040  List<MetaObjectGraphNodeStats> collectNodeStatistics(boolean reset);
041
042}