package io.ebeaninternal.server.deploy; import io.ebean.config.EncryptKey; import io.ebean.config.NamingConvention; import io.ebean.config.ServerConfig; import io.ebeaninternal.server.cache.SpiCacheManager; import io.ebeaninternal.server.deploy.id.IdBinder; import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import io.ebeanservice.docstore.api.DocStoreBeanAdapter; /** * Provides a method to find a BeanDescriptor. *

* Used during deployment of to resolve relationships between beans. *

*/ public interface BeanDescriptorMap { /** * Return the name of the server/database. */ String getServerName(); /** * Return the ServerConfig. */ ServerConfig getServerConfig(); /** * Return the Cache Manager. */ SpiCacheManager getCacheManager(); /** * Return the naming convention. */ NamingConvention getNamingConvention(); /** * Return the BeanDescriptor for a given class. */ BeanDescriptor getBeanDescriptor(Class entityType); /** * Return the Encrypt key given the table and column name. */ EncryptKey getEncryptKey(String tableName, String columnName); /** * Create a IdBinder for this bean property. */ IdBinder createIdBinder(BeanProperty id); /** * Create a doc store specific adapter for this bean type. */ DocStoreBeanAdapter createDocStoreBeanAdapter(BeanDescriptor descriptor, DeployBeanDescriptor deploy); }