package io.trygvis.container.compiler.model; import java.util.ArrayList; import java.util.List; import static org.springframework.util.StringUtils.collectionToDelimitedString; public class Constructor { private final ClassG g; private final Parameters parameters; private final List body; public Constructor(ClassG g, Parameters parameters, List body) { this.g = g; this.parameters = parameters; this.body = body; } public List write() { List body = new ArrayList<>(); List ps = new ArrayList<>(); for (ParameterRef p : parameters) { ps.add(p.klass.name + " " + p.name); } String params = collectionToDelimitedString(ps, ", "); body.add(" public " + g.type.className + "(" + params + ") {"); for (String s : this.body) { body.add(" " + s); } body.add(" }"); return body; } }