All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.femo.http.helper.DefaultHttpContext Maven / Gradle / Ivy

Go to download

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