
io.femo.http.helper.DefaultHttpContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of http-jdk7 Show documentation
Show all versions of http-jdk7 Show documentation
An easy to use HTTP API, that supports synchronous and asynchronous execution of HTTP request.
On android only asynchronous driver is supported.
This library has been backported to jdk 7 to retain compatibility with android!
The newest version!
package io.femo.http.helper;
import io.femo.http.*;
import io.femo.http.drivers.DefaultBase64Driver;
import io.femo.http.drivers.DefaultEnvironment;
import io.femo.http.drivers.DefaultMimeService;
import io.femo.support.jdk7.DefaultOptional;
import io.femo.support.jdk7.Optional;
import java.util.ArrayList;
import java.util.List;
/**
* Created by felix on 6/8/16.
*/
public class DefaultHttpContext implements HttpContext {
private List drivers;
public DefaultHttpContext() {
this.drivers = new ArrayList<>();
}
@Override
public Base64Driver base64() {
Optional driver = getFirstDriver(Base64Driver.class);
if(driver.isPresent()) {
return driver.get();
} else {
Base64Driver base64Driver = new DefaultBase64Driver();
useDriver(base64Driver);
return base64Driver;
}
}
private Optional getFirstDriver(Class type) {
for (Driver driver :
drivers) {
if (type.isAssignableFrom(driver.getClass())) {
return new DefaultOptional<>(type.cast(driver));
}
}
return new DefaultOptional<>();
}
@Override
public void useDriver(Driver driver) {
this.drivers.add(driver);
}
@Override
public MimeService mime() {
Optional service = getFirstDriver(MimeService.class);
if(service.isPresent()) {
return service.get();
} else {
MimeService mimeService = new DefaultMimeService();
useDriver(mimeService);
return mimeService;
}
}
@Override
public Environment environment() {
Optional driver = getFirstDriver(Environment.class);
if(driver.isPresent()) {
return driver.get();
} else {
Environment environment = new DefaultEnvironment();
useDriver(environment);
return environment;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy