package io.ebeaninternal.server.persist.dml;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
import io.ebeaninternal.server.deploy.generatedproperty.GeneratedProperty;
import java.util.ArrayList;
import java.util.List;
Collects the generated properties for inserts and updates for a given bean type.
/**
* Collects the generated properties for inserts and updates for a given bean type.
*/
class GeneratedPropertyCollector {
private final List<BeanProperty> preInsert = new ArrayList<>();
private final List<BeanProperty> preUpdate = new ArrayList<>();
GeneratedPropertyCollector(BeanDescriptor<?> desc) {
for (BeanProperty beanProperty : desc.propertiesBaseScalar()) {
add(beanProperty);
}
}
GeneratedProperties generatedProperties() {
return new GeneratedProperties(preInsert, preUpdate);
}
private void add(BeanProperty prop) {
GeneratedProperty gen = prop.getGeneratedProperty();
if (gen != null) {
if (gen.includeInInsert()) {
preInsert.add(prop);
}
if (gen.includeInUpdate()) {
preUpdate.add(prop);
}
}
}
}