001package com.avaje.ebean.plugin;
002
003import com.avaje.ebean.EbeanServer;
004import com.avaje.ebean.config.ServerConfig;
005import com.avaje.ebean.config.dbplatform.DatabasePlatform;
006
007import java.util.List;
008
009/**
010 * Extensions to EbeanServer API made available to plugins.
011 */
012public interface SpiServer extends EbeanServer {
013
014  /**
015   * Return the serverConfig.
016   */
017  ServerConfig getServerConfig();
018
019  /**
020   * Return the DatabasePlatform for this server.
021   */
022  DatabasePlatform getDatabasePlatform();
023
024  /**
025   * Return all the bean types registered on this server instance.
026   */
027  List<? extends BeanType<?>> getBeanTypes();
028
029  /**
030   * Return the bean type for a given entity bean class.
031   */
032  <T> BeanType<T> getBeanType(Class<T> beanClass);
033
034  /**
035   * Return the bean types mapped to the given base table.
036   */
037  List<? extends BeanType<?>> getBeanTypes(String baseTableName);
038
039  /**
040   * Return the bean type for a given doc store queueId.
041   */
042  BeanType<?> getBeanTypeForQueueId(String queueId);
043}