de.jaggl.sqlbuilder.columns.datetime.DateTimeColumnBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sqlbuilder-core Show documentation
Show all versions of sqlbuilder-core Show documentation
A Java-Library to build SQL-Statements
package de.jaggl.sqlbuilder.columns.datetime;
import java.time.LocalDateTime;
import de.jaggl.sqlbuilder.columns.ColumnBuilder;
import de.jaggl.sqlbuilder.columns.ColumnDefinition;
import de.jaggl.sqlbuilder.columns.configurable.DefaultValueColumnBuilder;
import de.jaggl.sqlbuilder.columns.configurable.NullableColumnBuilder;
import de.jaggl.sqlbuilder.schema.Table;
/**
* @author Martin Schumacher
*
* @since 2.0.0
*/
public class DateTimeColumnBuilder extends ColumnBuilder
implements NullableColumnBuilder, DefaultValueColumnBuilder
{
protected boolean isNullable = true;
private boolean isDefaultNull = true;
protected LocalDateTime defaultValue;
public DateTimeColumnBuilder(Table table, String name)
{
super(table, name);
}
@Override
public DateTimeColumnBuilder nullable(boolean nullable)
{
isNullable = nullable;
return this;
}
@Override
public DateTimeColumnBuilder defaultValue(LocalDateTime value)
{
isDefaultNull = false;
defaultValue = value;
return this;
}
@Override
public DateTimeColumnBuilder defaultNull()
{
isNullable = true;
defaultValue = null;
isDefaultNull = true;
return this;
}
@Override
public DateTimeColumnBuilder noDefault()
{
defaultValue = null;
isDefaultNull = false;
return this;
}
@Override
protected DateTimeColumn getColumnInstance()
{
return new DateTimeColumn(table, name, null, new ColumnDefinition("DATETIME", null, isNullable, isDefaultNull, false, false, defaultValue));
}
}