package net.sargue.mailgun; import javax.ws.rs.client.Entity; import javax.ws.rs.core.Form; import javax.ws.rs.core.MultivaluedMap; import java.util.List; import java.util.Map; import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED_TYPE; class MailForm extends Mail { private Form form; MailForm(Configuration configuration, Form form) { super(configuration); this.form = form; } @Override public String getFirstValue(String param) { return form.asMap().getFirst(param); } @Override public List<String> getValues(String param) { return form.asMap().get(param); } @Override Entity<?> entity() { return Entity.entity(form, APPLICATION_FORM_URLENCODED_TYPE); } @Override void prepareSend() { // apply default parameters MultivaluedMap<String, String> parameters = form.asMap(); Map<String, List<String>> def = configuration().defaultParameters(); for (Map.Entry<String, List<String>> entry : def.entrySet()) if (!parameters.containsKey(entry.getKey())) parameters.addAll(entry.getKey(), entry.getValue()); } }