package org.rhq.enterprise.server.rest.domain;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import com.wordnik.swagger.annotations.ApiClass;
import com.wordnik.swagger.annotations.ApiProperty;
/**
* @author Heiko W. Rupp
*/
@XmlRootElement
@ApiClass(value = "Represents an operation to be scheduled.",
description = "You use this object to prepare the operation to be scheduled. " +
"The object is derived from an OperationDefinition. When you are ready preparing," +
"you need to set 'readyToSubmit' to true.")
public class OperationRest {
int id;
String name;
boolean readyToSubmit;
int resourceId;
int definitionId;
Map<String,Object> params = new HashMap<String, Object>();
List<Link> links = new ArrayList<Link>();
public OperationRest() {
}
public OperationRest(int resourceId, int definitionId) {
this.resourceId = resourceId;
this.definitionId = definitionId;
}
@ApiProperty("Id of the operation schedule")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@ApiProperty("Name of the operation")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ApiProperty("Is this schedule ready to finally be submitted (and thus be scheduled to run)")
public boolean isReadyToSubmit() {
return readyToSubmit;
}
public void setReadyToSubmit(boolean readyToSubmit) {
this.readyToSubmit = readyToSubmit;
}
@ApiProperty("The id of the resource the operation should run ")
public int getResourceId() {
return resourceId;
}
public void setResourceId(int resourceId) {
this.resourceId = resourceId;
}
@ApiProperty("The id of the operation definition this schedule was created from")
public int getDefinitionId() {
return definitionId;
}
public void setDefinitionId(int definitionId) {
this.definitionId = definitionId;
}
@ApiProperty("A key/value map of parameters. Keys are strings. The map is populated at the time the " +
"schedule is created from its definition")
public Map<String, Object> getParams() {
return params;
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
@XmlElementRef
public List<Link> getLinks() {
return links;
}
public void setLinks(List<Link> links) {
this.links = links;
}
public void addLink(Link link) {
links.add(link);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
OperationRest that = (OperationRest) o;
if (definitionId != that.definitionId) return false;
if (id != that.id) return false;
if (resourceId != that.resourceId) return false;
if (name != null ? !name.equals(that.name) : that.name != null) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (id ^ (id >>> 32));
result = 31 * result + (name != null ? name.hashCode() : 0);
result = 31 * result + resourceId;
result = 31 * result + definitionId;
return result;
}
}