ColumnWrapperGenerator.java
package ru.volnenko.maven.plugin.databasedoc.generator.impl;
import lombok.NonNull;
import ru.volnenko.maven.plugin.databasedoc.generator.IColumnWrapperGenerator;
import ru.volnenko.maven.plugin.databasedoc.model.impl.ColumnWrapper;
import ru.volnenko.maven.plugin.databasedoc.model.impl.FK;
import ru.volnenko.maven.plugin.databasedoc.model.impl.UK;
import java.util.Collections;
import java.util.List;
import java.util.Set;
public final class ColumnWrapperGenerator extends AbstractGenerator implements IColumnWrapperGenerator {
@NonNull
private ColumnGenerator columnGenerator = new ColumnGenerator();
@NonNull
private Integer index = 1;
@NonNull
private String tableName = "";
@NonNull
private Set<FK> fks = Collections.emptySet();
@NonNull
private Set<UK> uks = Collections.emptySet();
@NonNull
private List<ColumnWrapper> columnWrappers = Collections.emptyList();
@Override
@NonNull
public IColumnWrapperGenerator tableName(@NonNull final String tableName) {
this.tableName = tableName;
return this;
}
@NonNull
@Override
public IColumnWrapperGenerator fks(@NonNull final Set<FK> fks) {
this.fks = fks;
return this;
}
@NonNull
@Override
public IColumnWrapperGenerator uks(@NonNull final Set<UK> uks) {
this.uks = uks;
return this;
}
@NonNull
@Override
public IColumnWrapperGenerator stringBuilder(@NonNull final StringBuilder stringBuilder) {
this.stringBuilder = stringBuilder;
return this;
}
@NonNull
@Override
public IColumnWrapperGenerator index(@NonNull final Integer index) {
this.index = index;
return this;
}
@NonNull
@Override
public IColumnWrapperGenerator columnWrappers(@NonNull final List<ColumnWrapper> columnWrappers) {
this.columnWrappers = columnWrappers;
return this;
}
@NonNull
@Override
public StringBuilder append(@NonNull final StringBuilder stringBuilder) {
stringBuilder.append("==== Описание полей\n");
stringBuilder.append("\n");
stringBuilder.append("[cols=\"0,20,20,20,5,5,5,5,5,10\"]\n");
stringBuilder.append("|===\n");
stringBuilder.append("\n");
stringBuilder.append("^|*№*\n");
stringBuilder.append("|*Физ. название*\n");
stringBuilder.append("|*Тип*\n");
stringBuilder.append("|*Лог. название*\n");
stringBuilder.append("^|*PK*\n");
stringBuilder.append("^|*UK*\n");
stringBuilder.append("^|*FK*\n");
stringBuilder.append("^|*AI*\n");
stringBuilder.append("^|*NN*\n");
stringBuilder.append("|*DEFAULT*\n");
stringBuilder.append("\n");
int index = 1;
for (final ColumnWrapper columnWrapper : columnWrappers) {
columnGenerator
.index(index)
.fks(fks)
.uks(uks)
.tableName(tableName)
.column(columnWrapper.getColumn())
.append(stringBuilder);
index++;
}
stringBuilder.append("|===\n");
stringBuilder.append("\n");
return stringBuilder;
}
}