package io.ebeaninternal.server.deploy;

import io.ebean.bean.BeanCollection;
import io.ebean.bean.EntityBean;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.bean.PersistenceContext;
import io.ebean.core.type.DataReader;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.query.STreePropertyAssocMany;

import java.util.Map;

Context provided when a BeanProperty reads from a ResultSet.
/** * Context provided when a BeanProperty reads from a ResultSet. */
public interface DbReadContext {
Return the state of the object graph.
/** * Return the state of the object graph. */
Boolean isReadOnly();
Propagate the state to the bean.
/** * Propagate the state to the bean. */
void propagateState(Object e);
Return the DataReader.
/** * Return the DataReader. */
DataReader getDataReader();
Return true if the query is using supplied SQL rather than generated SQL.
/** * Return true if the query is using supplied SQL rather than generated SQL. */
boolean isRawSql();
Set the JoinNode - used by proxy/reference beans for profiling.
/** * Set the JoinNode - used by proxy/reference beans for profiling. */
void setCurrentPrefix(String currentPrefix, Map<String, String> pathMap);
Return true if we are profiling this query.
/** * Return true if we are profiling this query. */
boolean isAutoTuneProfiling();
Add AutoTune profiling for a loaded entity bean.
/** * Add AutoTune profiling for a loaded entity bean. */
void profileBean(EntityBeanIntercept ebi, String prefix);
Return the persistence context.
/** * Return the persistence context. */
PersistenceContext getPersistenceContext();
Register a reference for lazy loading.
/** * Register a reference for lazy loading. */
void register(String path, EntityBeanIntercept ebi);
Register a reference with inheritance for lazy loading.
/** * Register a reference with inheritance for lazy loading. */
void registerBeanInherit(BeanPropertyAssocOne<?> property, EntityBeanIntercept ebi);
Register a collection for lazy loading.
/** * Register a collection for lazy loading. */
void register(BeanPropertyAssocMany<?> many, BeanCollection<?> bc);
Return the property that is associated with the many. There can only be one. This can be null.
/** * Return the property that is associated with the many. There can only be * one. This can be null. */
STreePropertyAssocMany getManyProperty();
Set back the bean that has just been loaded with its id.
/** * Set back the bean that has just been loaded with its id. */
void setLazyLoadedChildBean(EntityBean loadedBean, Object parentId);
Return the query mode.
/** * Return the query mode. */
SpiQuery.Mode getQueryMode();
Return true if the underlying query is a 'asDraft' query.
/** * Return true if the underlying query is a 'asDraft' query. */
boolean isDraftQuery();
Return true if this request disables lazy loading.
/** * Return true if this request disables lazy loading. */
boolean isDisableLazyLoading();
Handles a load error on given property.
/** * Handles a load error on given property. */
void handleLoadError(String fullName, Exception e); }