package io.ebeaninternal.server.query;
import io.ebean.core.type.ScalarDataReader;
import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
import java.util.List;
A property in the SQL Tree.
A BeanProperty or a dynamically created property based on formula.
/**
* A property in the SQL Tree.
* <p>
* A BeanProperty or a dynamically created property based on formula.
*/
public interface STreeProperty extends ScalarDataReader<Object> {
Return the property name.
/**
* Return the property name.
*/
String getName();
Return the full property name (for error messages).
/**
* Return the full property name (for error messages).
*/
String getFullBeanName();
Return true if the property is the Id.
/**
* Return true if the property is the Id.
*/
boolean isId();
Return true if the property is an embedded type.
/**
* Return true if the property is an embedded type.
*/
boolean isEmbedded();
Return true if the property is an aggregation.
/**
* Return true if the property is an aggregation.
*/
boolean isAggregation();
Return true if the property is an aggregation on a ManyToOne.
/**
* Return true if the property is an aggregation on a ManyToOne.
*/
default boolean isAggregationManyToOne() {
return false;
}
Return true if the property is a formula.
/**
* Return true if the property is a formula.
*/
boolean isFormula();
Return the encryption key as a string value (when the property is encrypted).
/**
* Return the encryption key as a string value (when the property is encrypted).
*/
String getEncryptKeyAsString();
Return the Expression language prefix (join path).
/**
* Return the Expression language prefix (join path).
*/
String getElPrefix();
Return the underlying scalar type for the property (for findSingleAttribute).
/**
* Return the underlying scalar type for the property (for findSingleAttribute).
*/
ScalarType<?> getScalarType();
For RawSql build the select chain.
/**
* For RawSql build the select chain.
*/
void buildRawSqlSelectChain(String prefix, List<String> selectChain);
Load into the bean (from the DataReader/ResultSet).
/**
* Load into the bean (from the DataReader/ResultSet).
*/
void load(SqlBeanLoad sqlBeanLoad);
Ignore the property (moving the column index position without reading).
/**
* Ignore the property (moving the column index position without reading).
*/
void loadIgnore(DbReadContext ctx);
Append to the select clause.
/**
* Append to the select clause.
*/
void appendSelect(DbSqlContext ctx, boolean subQuery);
Append to the from clause.
/**
* Append to the from clause.
*/
void appendFrom(DbSqlContext ctx, SqlJoinType joinType);
}