ConstraintsBuilder.java
package ru.volnenko.maven.plugin.databasedoc.builder.impl;
import lombok.NonNull;
import ru.volnenko.maven.plugin.databasedoc.builder.IConstraintsBuilder;
import ru.volnenko.maven.plugin.databasedoc.model.impl.Constraints;
import ru.volnenko.maven.plugin.databasedoc.model.impl.Root;
public final class ConstraintsBuilder implements IConstraintsBuilder {
@NonNull
private final ColumnItemBuilder columnItemBuilder;
@NonNull
private final Constraints constraints = new Constraints();
public ConstraintsBuilder(@NonNull final ColumnItemBuilder columnItemBuilder) {
this.columnItemBuilder = columnItemBuilder;
columnItemBuilder.column().setConstraints(constraints);
}
@NonNull
@Override
public ForeignKeyBuilder foreignKey() {
return new ForeignKeyBuilder(this);
}
@NonNull
@Override
public Root root() {
return columnItemBuilder.root();
}
@NonNull
@Override
public ConstraintsBuilder primaryKey(final Boolean primaryKey) {
constraints.setPrimaryKey(primaryKey);
return this;
}
@NonNull
@Override
public ConstraintsBuilder nullable(final Boolean nullable) {
constraints.setNullable(nullable);
return this;
}
@NonNull
@Override
public ConstraintsBuilder unique(final Boolean unique) {
constraints.setUnique(unique);
return this;
}
@NonNull
@Override
public ConstraintsBuilder uniqueConstraintName(final String uniqueConstraintName) {
constraints.setUniqueConstraintName(uniqueConstraintName);
return this;
}
@NonNull
@Override
public ConstraintsBuilder foreignKeyName(final String foreignKeyName) {
constraints.setForeignKeyName(foreignKeyName);
return this;
}
@NonNull
@Override
public ColumnItemBuilder add() {
return columnItemBuilder.add();
}
@NonNull
@Override
public ChangeBuilder change() {
return columnItemBuilder.change();
}
}