package org.jtwig.parser.config;
import org.apache.commons.lang3.builder.Builder;
public class SyntaxConfigurationBuilder<B extends SyntaxConfigurationBuilder> implements Builder<SyntaxConfiguration> {
private String startComment;
private String endComment;
private String startOutput;
private String endOutput;
private String startCode;
private String endCode;
public SyntaxConfigurationBuilder () {}
public SyntaxConfigurationBuilder (SyntaxConfiguration prototype) {
this.startComment = prototype.getStartComment();
this.endComment = prototype.getEndComment();
this.startOutput = prototype.getStartOutput();
this.endOutput = prototype.getEndOutput();
this.startCode = prototype.getStartCode();
this.endCode = prototype.getEndCode();
}
public B withStartComment(String startComment) {
this.startComment = startComment;
return self();
}
public B withEndComment(String endComment) {
this.endComment = endComment;
return self();
}
public B withStartOutput(String startOutput) {
this.startOutput = startOutput;
return self();
}
public B withEndOutput(String endOutput) {
this.endOutput = endOutput;
return self();
}
public B withStartCode(String startCode) {
this.startCode = startCode;
return self();
}
public B withEndCode(String endCode) {
this.endCode = endCode;
return self();
}
protected B self() {
return (B) this;
}
@Override
public SyntaxConfiguration build() {
return new SyntaxConfiguration(
startComment,
endComment,
startOutput,
endOutput,
startCode,
endCode
);
}
}