package org.scribble.codegen.java.util; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; public class FieldBuilder extends JavaBuilder { private List<String> mods = new LinkedList<>(); private String type; private String expr; // null if none public FieldBuilder() { } public FieldBuilder(String name) { super(name); } public void addModifiers(String... mods) { this.mods.addAll(Arrays.asList(mods)); } public void setType(String type) { setterCheck(this.type); this.type = type; } public void setExpression(String val) { setterCheck(this.expr); this.expr = val; } @Override public String build() { String field = ""; field += "\t"; if (!this.mods.isEmpty()) { field += this.mods.stream().collect(Collectors.joining(" ")); field += " "; } field += this.type + " " + this.name; if (this.expr != null) { field += " = " + this.expr; } field += ";"; return field; } }