
hope.kola.contract.api.Headers Maven / Gradle / Ivy
package hope.kola.contract.api;
import static hope.kola.contract.api.KolaTestFunctions.$VString;
import com.squareup.javapoet.CodeBlock;
import groovy.lang.Closure;
import groovy.lang.DelegatesTo;
import java.util.LinkedHashSet;
import java.util.Set;
@SuppressWarnings("Duplicates")
public class Headers implements HeaderTrait {
protected Set entries = new LinkedHashSet<>();
public Set entries() {
return entries;
}
public boolean hasEntries() {
return !entries.isEmpty();
}
public void header(String name, @DelegatesTo(HeaderValue.class) Closure consumer) {
final HeaderValue hv = new HeaderValue(name);
consumer.setDelegate(hv);
consumer.call();
entries.add(hv);
}
/**
* Populate dynamic value from the global context by the key
*
* @param name the header name
* @param key the key from the context
*/
public void fromGlobal(String name, final String key) {
final HeaderValue hv = new HeaderValue(name);
hv.code(CodeBlock.builder().add("$L($S)", $VString, key));
entries.add(hv);
}
public void header(String name, String value) {
final HeaderValue hv = new HeaderValue(name);
hv.withString(value);
entries.add(hv);
}
public void accept(String contentType) {
header(accept(), contentType);
}
public void contentType(String contentType) {
header(HttpHeaders.CONTENT_TYPE, contentType);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy