package cz.habarta.typescript.generator.emitter;
import cz.habarta.typescript.generator.Settings;
import cz.habarta.typescript.generator.util.Utils;
import java.util.*;
public class TsObjectLiteral extends TsExpression {
private final List<TsPropertyDefinition> propertyDefinitions;
public TsObjectLiteral(TsPropertyDefinition... propertyDefinitions) {
this(Utils.removeNulls(Arrays.asList(propertyDefinitions)));
}
public TsObjectLiteral(List<TsPropertyDefinition> propertyDefinitions) {
this.propertyDefinitions = propertyDefinitions;
}
public List<TsPropertyDefinition> getPropertyDefinitions() {
return propertyDefinitions;
}
@Override
public String format(Settings settings) {
final List<String> props = new ArrayList<>();
for (TsPropertyDefinition property : propertyDefinitions) {
props.add(property.format(settings));
}
if (props.isEmpty()) {
return "{}";
} else {
return "{ " + Utils.join(props, ", ") + " }";
}
}
}