maze-generator/src/main/java/ch/fritteli/maze/generator/renderer/text/TextRenderer.java

40 lines
1.0 KiB
Java

package ch.fritteli.maze.generator.renderer.text;
import ch.fritteli.maze.generator.model.Maze;
import ch.fritteli.maze.generator.renderer.Renderer;
import lombok.NonNull;
public class TextRenderer implements Renderer<String> {
private boolean renderSolution;
private TextRenderer() {
this.renderSolution = false;
}
@NonNull
public static TextRenderer newInstance() {
return new TextRenderer();
}
@NonNull
public TextRenderer setRenderSolution(final boolean renderSolution) {
this.renderSolution = renderSolution;
return this;
}
@NonNull
@Override
public String render(@NonNull final Maze maze) {
if (maze.getWidth() == 0 || maze.getHeight() == 0) {
return "";
}
final Generator generator = new Generator(maze, this.renderSolution);
final StringBuilder sb = new StringBuilder();
while (generator.hasNext()) {
sb.append(generator.next());
}
return sb.toString();
}
}