package io.ebeaninternal.server.query;

import io.ebean.bean.BeanCollection;
import io.ebean.bean.EntityBean;
import io.ebeaninternal.server.deploy.BeanPropertyAssocMany;
import io.ebeaninternal.server.deploy.DbSqlContext;
import io.ebeaninternal.server.deploy.TableJoin;

public interface STreePropertyAssocMany extends STreePropertyAssoc {

  
Return as BeanPropertyAssocMany.
/** * Return as BeanPropertyAssocMany. */
BeanPropertyAssocMany<?> asMany();
Append exported columns to the select.
/** * Append exported columns to the select. */
void addSelectExported(DbSqlContext ctx, String prefix);
Return true if this is a ManyToMany with history.
/** * Return true if this is a ManyToMany with history. */
boolean isManyToManyWithHistory();
Return a reference collection.
/** * Return a reference collection. */
BeanCollection<?> createReferenceIfNull(EntityBean localBean);
Return a reference collection forcing a new reference on REFRESH query.
/** * Return a reference collection forcing a new reference on REFRESH query. */
BeanCollection<?> createReference(EntityBean localBean, boolean forceNewReference);
Return true if the property has a join table.
/** * Return true if the property has a join table. */
boolean hasJoinTable();
Return the intersection table join.
/** * Return the intersection table join. */
TableJoin getIntersectionTableJoin();
Add a bean to the collection.
/** * Add a bean to the collection. */
void addBeanToCollectionWithCreate(EntityBean contextParent, EntityBean detailBean, boolean withCheck);
Return true if the property is excluded from history.
/** * Return true if the property is excluded from history. */
boolean isExcludedFromHistory(); }