package cz.habarta.typescript.generator.emitter; import cz.habarta.typescript.generator.Settings; import cz.habarta.typescript.generator.util.Utils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class TsCallExpression extends TsExpression { private final TsExpression expression; private final List<TsExpression> arguments; public TsCallExpression(TsExpression expression, TsExpression... arguments) { this(expression, Arrays.asList(arguments)); } public TsCallExpression(TsExpression expression, List<TsExpression> arguments) { this.expression = expression; this.arguments = arguments; } public TsExpression getExpression() { return expression; } public List<TsExpression> getArguments() { return arguments; } @Override public String format(Settings settings) { final List<String> args = new ArrayList<>(); for (TsExpression argument : arguments) { args.add(argument.format(settings)); } return expression.format(settings) + "(" + Utils.join(args, ", ") + ")"; } }