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

org.openstack4j.model.common.ActionResponse Maven / Gradle / Ivy

There is a newer version: 3.12
Show newest version
package org.openstack4j.model.common;

import com.google.common.base.MoreObjects;

import java.io.Serializable;

/**
 * A response that is returned when an Action is performed against the server.
 * If {@link #isSuccess()} is true then the fault will always be null.
 * The fault will indicate why the action has failed.  Any other transport/communication
 * errors will be thrown as with any other API calls.
 *
 * @author Jeremy Unruh
 */
public class ActionResponse implements Serializable {

	private static final long serialVersionUID = 1L;

	private String message;
	private int code;

	private ActionResponse(int code) {
	    this.code = code;
	}

	private ActionResponse(String message, int code) {
	    this(code);
		this.message = message;
	}

    public static ActionResponse actionSuccess(int code) {
        return new ActionResponse(code);
    }

    public static ActionResponse actionSuccess() {
		return new ActionResponse(200);
	}

	public static ActionResponse actionFailed(String message, int code) {
		return new ActionResponse(message, code);
	}

	/**
	 * Returns the underlying error code (status code)
	 *
	 * @return the error code
	 */
	public int getCode() {
	    return code;
	}

	/**
	 * @return true if the action was successful
	 */
	public boolean isSuccess() {
		return message == null;
	}

	/**
	 * @return the fault if the action was unsuccessful otherwise null
	 */
	public String getFault() {
		return message;
	}

	@Override
	public String toString() {
		return MoreObjects.toStringHelper(this).
                omitNullValues().
                add("success", message == null).
                add("fault", message).
                add("code", code).
                toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy