CreateTypeGenerator.java

package ru.volnenko.maven.plugin.databasedoc.generator.impl;

import lombok.NonNull;
import ru.volnenko.maven.plugin.databasedoc.generator.ICreateTypeGenerator;
import ru.volnenko.maven.plugin.databasedoc.model.impl.CreateType;

public final class CreateTypeGenerator extends AbstractGenerator implements ICreateTypeGenerator {

    @NonNull
    private final CreateTypeBasicGenerator createTypeBasicGenerator = new CreateTypeBasicGenerator();

    @NonNull
    private final ValueWrapperGenerator valueWrapperGenerator = new ValueWrapperGenerator();

    @NonNull
    private CreateType createType = new CreateType();

    @NonNull
    private String serviceName = "";

    @NonNull
    private String dataBaseInfo = "";

    @NonNull
    @Override
    public ICreateTypeGenerator createType(@NonNull final CreateType createType) {
        this.createType = createType;
        return this;
    }

    @NonNull
    @Override
    public ICreateTypeGenerator serviceName(@NonNull final String serviceName) {
        this.serviceName = serviceName;
        return this;
    }

    @NonNull
    @Override
    public ICreateTypeGenerator dataBaseInfo(@NonNull final String dataBaseInfo) {
        this.dataBaseInfo = dataBaseInfo;
        return this;
    }

    @NonNull
    @Override
    public StringBuilder append(@NonNull StringBuilder stringBuilder) {
        createTypeBasicGenerator
                .dataBaseInfo(dataBaseInfo)
                .serviceName(serviceName)
                .createType(createType)
                .append(stringBuilder);
        valueWrapperGenerator
                .valueWrappers(createType.getValues())
                .append(stringBuilder);
        return stringBuilder;
    }

}