mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Adds PropertyAssocMany to ensure public access on BeanPropertyAssocMany helper methods for ebean-elastic integration.
66 lines
1.4 KiB
Java
66 lines
1.4 KiB
Java
package io.ebeaninternal.server.deploy.generatedproperty;
|
|
|
|
import io.ebean.bean.EntityBean;
|
|
import io.ebeaninternal.server.core.BasicTypeConverter;
|
|
import io.ebeaninternal.server.deploy.BeanProperty;
|
|
|
|
/**
|
|
* A general number counter for various number types.
|
|
*/
|
|
public class GeneratedCounter implements GeneratedProperty {
|
|
|
|
private final int numberType;
|
|
|
|
GeneratedCounter(int numberType) {
|
|
this.numberType = numberType;
|
|
}
|
|
|
|
/**
|
|
* Always returns a 1.
|
|
*/
|
|
@Override
|
|
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
|
|
return BasicTypeConverter.convert(1, numberType);
|
|
}
|
|
|
|
/**
|
|
* Increments the current value by one.
|
|
*/
|
|
@Override
|
|
public Object getUpdateValue(BeanProperty prop, EntityBean bean, long now) {
|
|
Number currVal = (Number) prop.getValue(bean);
|
|
if (currVal == null) {
|
|
throw new IllegalStateException("version property has been set to null on bean: " + bean);
|
|
}
|
|
Integer nextVal = currVal.intValue() + 1;
|
|
return BasicTypeConverter.convert(nextVal, numberType);
|
|
}
|
|
|
|
/**
|
|
* Include this in every update.
|
|
*/
|
|
@Override
|
|
public boolean includeInUpdate() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean includeInAllUpdates() {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Include this in every insert setting initial counter value to 1.
|
|
*/
|
|
@Override
|
|
public boolean includeInInsert() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean isDDLNotNullable() {
|
|
return true;
|
|
}
|
|
|
|
}
|