
com.blossomproject.generator.configuration.FieldsBuilder Maven / Gradle / Ivy
package com.blossomproject.generator.configuration;
import com.google.common.collect.Lists;
import com.blossomproject.generator.configuration.model.Field;
import java.util.List;
import java.util.stream.Collectors;
import javax.persistence.TemporalType;
public class FieldsBuilder {
private final SettingsBuilder parent;
private final List fields;
FieldsBuilder(SettingsBuilder parent) {
this.parent = parent;
this.fields = Lists.newArrayList();
}
public FieldsBuilder defaultFields() {
return
this._string("name").searchable(true).requiredCreate(true).updatable(true).nullable(false)
.notBlank(true).defaultValue(null).maxLength(50)
.and()
._string("description").searchable(true).requiredCreate(true).updatable(true)
.nullable(false).notBlank(false).isLob(true).defaultValue(null)
.and();
}
public StringFieldBuilder _string(String name) {
StringFieldBuilder field = new StringFieldBuilder(this, name);
fields.add(field);
return field;
}
public TemporalFieldBuilder _date(String name, TemporalType temporalType) {
TemporalFieldBuilder field = new TemporalFieldBuilder(this, name, temporalType);
fields.add(field);
return field;
}
public TemporalFieldBuilder _localDateTime(String name, TemporalType temporalType) {
TemporalFieldBuilder field = new TemporalFieldBuilder(this, name, temporalType);
fields.add(field);
return field;
}
public BooleanFieldBuilder _boolean(String name) {
BooleanFieldBuilder field = new BooleanFieldBuilder(this, name);
fields.add(field);
return field;
}
public LongFieldBuilder _long(String name) {
LongFieldBuilder field = new LongFieldBuilder(this, name);
fields.add(field);
return field;
}
public IntegerFieldBuilder _integer(String name) {
IntegerFieldBuilder field = new IntegerFieldBuilder(this, name);
fields.add(field);
return field;
}
public BigDecimalFieldBuilder _bigDecimal(String name, Integer precision, Integer fractionalPrecision) {
BigDecimalFieldBuilder field = new BigDecimalFieldBuilder(this, name, precision,
fractionalPrecision);
fields.add(field);
return field;
}
public BlobFieldBuilder _blob(String name) {
BlobFieldBuilder field = new BlobFieldBuilder(this, name);
fields.add(field);
return field;
}
public EnumFieldBuilder _enum(String name, Class extends Enum> enumClass){
EnumFieldBuilder field = new EnumFieldBuilder(this, name, enumClass);
fields.add(field);
return field;
}
public SettingsBuilder done() {
return parent;
}
List build() {
return this.fields.stream().map(f -> f.build()).collect(Collectors.toList());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy