package io.ebeaninternal.server.deploy.generatedproperty;
import io.ebean.bean.EntityBean;
import io.ebeaninternal.server.deploy.BeanProperty;
Used to generate values for a property rather than have then set by the user.
For example generate the update timestamp when a bean is updated.
/**
* Used to generate values for a property rather than have then set by the user.
* For example generate the update timestamp when a bean is updated.
*/
public interface GeneratedProperty {
Get the generated insert value for a specific property of a bean.
/**
* Get the generated insert value for a specific property of a bean.
*/
Object getInsertValue(BeanProperty prop, EntityBean bean, long now);
Get the generated update value for a specific property of a bean.
/**
* Get the generated update value for a specific property of a bean.
*/
Object getUpdateValue(BeanProperty prop, EntityBean bean, long now);
Return true if this should always be includes in an update statement.
Used to include GeneratedUpdateTimestamp in dynamic table updates.
/**
* Return true if this should always be includes in an update statement.
* <p>
* Used to include GeneratedUpdateTimestamp in dynamic table updates.
* </p>
*/
boolean includeInUpdate();
Return true if the property should be included in an update even if
it is not loaded (ie. Last Updated Timestamp).
/**
* Return true if the property should be included in an update even if
* it is not loaded (ie. Last Updated Timestamp).
*/
boolean includeInAllUpdates();
Return true if this should be included in insert statements.
/**
* Return true if this should be included in insert statements.
*/
boolean includeInInsert();
Return true if the GeneratedProperty implies the DDL to create the DB
column should have a not null constraint.
/**
* Return true if the GeneratedProperty implies the DDL to create the DB
* column should have a not null constraint.
*/
boolean isDDLNotNullable();
}