com.evrythng.thng.resource.model.exception.ErrorMessage.java Source code

Java tutorial

Introduction

Here is the source code for com.evrythng.thng.resource.model.exception.ErrorMessage.java

Source

/*
 * (c) Copyright Reserved EVRYTHNG Limited 2016. All rights reserved.
 * Use of this material is subject to license.
 * Copying and unauthorised use of this material strictly prohibited.
 */
package com.evrythng.thng.resource.model.exception;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * This defines the format of an error message as sent by the API. E.g., in JSON
 * such a message looks like: {@code{"status": 201, "errors":["message", "...", "moreInfo" : URL]}}
 *
 * @author Dominique Guinard (domguinard)
 */
public class ErrorMessage {

    private static final String MORE_INFO_ROOT = "https://developers.evrythng.com";
    /**
     * HTTP status
     */
    private int status;
    /**
     * Human-friendly error(s) description(s)
     */
    private List<String> errors = new ArrayList<>();
    private String moreInfo = MORE_INFO_ROOT;

    /**
     * Creates a new ErrorMessage.
     */
    public ErrorMessage() {

    }

    /**
     * Creates a new ErrorMessage.
     */
    public ErrorMessage(final int status) {

        this.status = status;
    }

    /**
     * Creates a new ErrorMessage containing a single human-friendly description
     * message.
     */
    public ErrorMessage(final int status, final String error) {

        this(status, Collections.singletonList(error));
    }

    /**
     * Creates a new ErrorMessage containing a single human-friendly description
     * message.
     *
     * @param moreInfo Page or anchor in the documentation for more information e.g., #search
     */
    public ErrorMessage(final int code, final String error, final String moreInfo) {

        this(code, Collections.singletonList(error), "");
    }

    /**
     * Creates a new error message containing several errors.
     */
    public ErrorMessage(final int code, final List<String> errors) {

        this(code, errors, "");
    }

    /**
     * @param moreInfo Page or anchor in the documentation for more information e.g., #search
     */
    public ErrorMessage(final int status, final List<String> errors, final String moreInfo) {

        this.status = status;
        this.errors = errors;
        this.moreInfo = String.format("%s%s", MORE_INFO_ROOT, moreInfo);
    }

    public int getStatus() {

        return status;
    }

    public void setStatusCode(final int statusCode) {

        this.status = statusCode;
    }

    public String getMoreInfo() {

        return moreInfo;
    }

    public void setMoreInfo(final String moreInfo) {

        this.moreInfo = moreInfo;
    }

    public List<String> getErrors() {

        return errors;
    }

    public void setErrors(final List<String> errors) {

        this.errors = errors;
    }

    @JsonIgnore
    public String errorsAsString() {

        return StringUtils.join(errors, "," + System.lineSeparator());
    }
}