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

com.github.lontime.exthttp.provider.DeleteProvider Maven / Gradle / Ivy

package com.github.lontime.exthttp.provider;

import java.util.Map;

import com.github.lontime.base.commonj.constants.Consts;
import com.github.lontime.exthttp.common.Response;
import com.github.lontime.extjson.TypeReference;
import io.netty.handler.codec.http.DefaultHttpHeaders;
import io.netty.handler.codec.http.HttpHeaders;
import reactor.core.publisher.Mono;

/**
 * DeleteProvider.
 * @author lontime
 * @since 1.0
 */
public interface DeleteProvider {

    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param headers headers
     * @param clazz clazz
     * @param body body
     * @return object
     */
     Mono> asyncDeleteForObject(String name, HttpHeaders headers, String uri, Object body, TypeReference clazz);


    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param reference clazz
     * @param body body
     * @return object
     */
    default  Mono> asyncDeleteForObject(String uri, Object body, TypeReference reference) {
        return asyncDeleteForObject(Consts.DEFAULT_OBJECT_NAME, new DefaultHttpHeaders(), uri,  body, reference);
    }

    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param reference clazz
     * @param body body
     * @return object
     */
    default  Mono> asyncDeleteForObject(String name, String uri, Object body, TypeReference reference) {
        return asyncDeleteForObject(name, new DefaultHttpHeaders(), uri,  body, reference);
    }

    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param reference clazz
     * @param body body
     * @param headers headers
     * @return object
     */
    default  Mono> asyncDeleteForObject(String name, Map headers, String uri, Object body, TypeReference reference) {
        final DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
        for (Map.Entry entry : headers.entrySet()) {
            httpHeaders.add(entry.getKey(), entry.getValue());
        }
        return asyncDeleteForObject(name, httpHeaders, uri, body, reference);
    }

    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param reference clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String uri, Object body, TypeReference reference) {
        return deleteForObject(Consts.DEFAULT_OBJECT_NAME, new DefaultHttpHeaders(), uri,  body, reference);
    }


    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param reference clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String name, String uri, Object body, TypeReference reference) {
        return deleteForObject(name, new DefaultHttpHeaders(), uri,  body, reference);
    }

    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param reference clazz
     * @param body body
     * @param headers headers
     * @return object
     */
    default  Response deleteForObject(String name, Map headers, String uri, Object body, TypeReference reference) {
        final DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
        for (Map.Entry entry : headers.entrySet()) {
            httpHeaders.add(entry.getKey(), entry.getValue());
        }
        return deleteForObject(name, httpHeaders, uri, body, reference);
    }


    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param headers headers
     * @param reference clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String name, HttpHeaders headers, String uri, Object body, TypeReference reference) {
        return asyncDeleteForObject(name, headers, uri, body, reference).blockOptional().orElse(null);
    }

    /**
     * postForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param headers headers
     * @param clazz clazz
     * @param body body
     * @return object
     */
     Mono> asyncDeleteForObject(String name, HttpHeaders headers, String uri, Object body, Class clazz);


    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param clazz clazz
     * @param body body
     * @return object
     */
    default  Mono> asyncDeleteForObject(String uri, Object body, Class clazz) {
        return asyncDeleteForObject(Consts.DEFAULT_OBJECT_NAME, new DefaultHttpHeaders(), uri,  body, clazz);
    }

    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param clazz clazz
     * @param body body
     * @return object
     */
    default  Mono> asyncDeleteForObject(String name, String uri, Object body, Class clazz) {
        return asyncDeleteForObject(name, new DefaultHttpHeaders(), uri,  body, clazz);
    }

    /**
     * asyncDeleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param clazz clazz
     * @param body body
     * @param headers headers
     * @return object
     */
    default  Mono> asyncDeleteForObject(String name, Map headers, String uri, Object body, Class clazz) {
        final DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
        for (Map.Entry entry : headers.entrySet()) {
            httpHeaders.add(entry.getKey(), entry.getValue());
        }
        return asyncDeleteForObject(name, httpHeaders, uri, body, clazz);
    }

    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param clazz clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String uri, Object body, Class clazz) {
        return deleteForObject(Consts.DEFAULT_OBJECT_NAME, new DefaultHttpHeaders(), uri,  body, clazz);
    }


    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param clazz clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String name, String uri, Object body, Class clazz) {
        return deleteForObject(name, new DefaultHttpHeaders(), uri,  body, clazz);
    }

    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param clazz clazz
     * @param body body
     * @param headers headers
     * @return object
     */
    default  Response deleteForObject(String name, Map headers, String uri, Object body, Class clazz) {
        final DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
        for (Map.Entry entry : headers.entrySet()) {
            httpHeaders.add(entry.getKey(), entry.getValue());
        }
        return deleteForObject(name, httpHeaders, uri, body, clazz);
    }


    /**
     * deleteForObject.
     * @param  T
     * @param uri uri
     * @param name name
     * @param headers headers
     * @param clazz clazz
     * @param body body
     * @return object
     */
    default  Response deleteForObject(String name, HttpHeaders headers, String uri, Object body, Class clazz) {
        return asyncDeleteForObject(name, headers, uri, body, clazz).blockOptional().orElse(null);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy