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

com.dottydingo.hyperion.client.builder.CreateRequestBuilder Maven / Gradle / Ivy

package com.dottydingo.hyperion.client.builder;

import com.dottydingo.hyperion.api.ApiObject;
import com.dottydingo.hyperion.client.*;

import java.io.Serializable;

/**
 */
public class CreateRequestBuilder,ID extends Serializable> extends RequestBuilder
{
    private T body;

    public CreateRequestBuilder(int version, Class objectType,String entityName, T body)
    {
        super(version, objectType, entityName);
        this.body = body;
    }

    public CreateRequestBuilder returnFields(String... fields)
    {
        setParameter("fields",join(fields));
        return this;
    }

    @Override
    public CreateRequestBuilder addParameter(String name, String value)
    {
        super.addParameter(name, value);
        return this;
    }

    @Override
    public CreateRequestBuilder setParameter(String name, String value)
    {
        super.setParameter(name, value);
        return this;
    }

    @Override
    public CreateRequestBuilder addHeader(String name, String value)
    {
        super.addHeader(name, value);
        return this;
    }

    @Override
    public CreateRequestBuilder setHeader(String name, String value)
    {
        super.setHeader(name, value);
        return this;
    }

    @Override
    public CreateRequestBuilder withHeaderFactory(HeaderFactory headerFactory)
    {
        super.withHeaderFactory(headerFactory);
        return this;
    }

    @Override
    public CreateRequestBuilder withParameterFactory(ParameterFactory parameterFactory)
    {
        super.withParameterFactory(parameterFactory);
        return this;
    }

    @Override
    public Request build()
    {
        Request request = super.build();
        request.setRequestBody(body);
        request.setRequestMethod(RequestMethod.POST);
        return request;
    }

    public T execute(HyperionClient client)
    {
        return client.create(build());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy