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

graphql.ExecutionResultImpl Maven / Gradle / Ivy

The newest version!
package graphql;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ExecutionResultImpl implements ExecutionResult {

    private final List errors = new ArrayList<>();
    private Object data;
    private Map extensions = null;

    public ExecutionResultImpl(List errors) {
        this(null,errors,null);
    }

    public ExecutionResultImpl(Object data, List errors) {
        this(data,errors,null);
    }

    public ExecutionResultImpl(Object data, List errors, Map extensions) {
        this.data = data;

        if (errors != null && !errors.isEmpty()) {
            this.errors.addAll(errors);
        }

        if (extensions != null && !extensions.isEmpty()) {
            this.extensions = new HashMap<>(extensions);
        }
    }

    public void addErrors(List errors) {
        this.errors.addAll(errors);
    }

    public void addExtensions(Map extensions) {
        this.extensions.putAll(extensions);
    }


    @Override
    public  T getData() {
        //noinspection unchecked
        return (T) data;
    }

    public void setData(Object result) {
        this.data = result;
    }

    @Override
    public List getErrors() {
        return new ArrayList<>(errors);
    }

    @Override
    public Map getExtensions() {
        return extensions == null ? null : new HashMap<>(extensions);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy