package cz.habarta.typescript.generator.emitter; import cz.habarta.typescript.generator.Settings; import java.util.List; public class TsTemplateLiteral extends TsExpression { private final List<TsExpression/*|TsStringLiteral*/> spans; public TsTemplateLiteral(List<TsExpression> spans) { this.spans = spans; } public List<TsExpression> getSpans() { return spans; } @Override public String format(Settings settings) { final StringBuilder sb = new StringBuilder(); sb.append("`"); for (TsExpression span : spans) { if (span instanceof TsStringLiteral) { final TsStringLiteral literal = (TsStringLiteral) span; sb.append(literal.getLiteral()); } else { sb.append("${"); sb.append(span.format(settings)); sb.append("}"); } } sb.append("`"); return sb.toString(); } }