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

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

package org.openstack4j.model.common;

import com.google.common.base.Objects;

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;

	String message;
	int code;
	
	private ActionResponse(int code) { 
	    this.code = code;
	}
	private ActionResponse(String message, int code) { 
	    this(code);
		this.message = message;
	}
	
	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 Objects.toStringHelper(this).omitNullValues().add("success", message == null).add("fault", message).add("code", code).toString();
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy