/*******************************************************************************
* Copyright (c) 2006-2011 Gluster, Inc. <http://www.gluster.com>
* This file is part of Gluster Management Console.
*
* Gluster Management Console is free software; you can redistribute
* it and/or modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* Gluster Management Console is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
* <http://www.gnu.org/licenses/>.
*******************************************************************************/
package org.gluster.storage.management.core.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.gluster.storage.management.core.utils.StringUtil;
@XmlRootElement
public class TaskInfo extends Entity {
public enum TASK_TYPE {
DISK_FORMAT, BRICK_MIGRATE, VOLUME_REBALANCE
}
private TASK_TYPE type;
private String reference;
private String description;
private Boolean pauseSupported;
private Boolean stopSupported;
private Boolean commitSupported;
private TaskStatus status;
public TaskInfo() {
}
@XmlElement(name="id")
public String getName() {
return super.getName();
}
public TASK_TYPE getType() {
return type;
}
public void setType(TASK_TYPE type) {
this.type = type;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public TaskStatus getStatus() {
return status;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
public Boolean getPauseSupported() {
return pauseSupported;
}
public void setPauseSupported(Boolean canPause) {
this.pauseSupported = canPause;
}
public Boolean getStopSupported() {
return stopSupported;
}
public void setStopSupported(Boolean canStop) {
this.stopSupported = canStop;
}
public Boolean getCommitSupported() {
return this.commitSupported;
}
public void setCommitSupported(Boolean canCommit) {
this.commitSupported = canCommit;
}
/* (non-Javadoc)
* @see org.gluster.storage.management.core.model.Entity#filter(java.lang.String, boolean)
*/
@Override
public boolean filter(String filterString, boolean caseSensitive) {
return StringUtil.filterString(getDescription() + getStatus().getMessage(), filterString, caseSensitive);
}
public void copyFrom(TaskInfo newTask) {
setName(newTask.getName());
setDescription(newTask.getDescription());
setReference(newTask.getReference());
setStatus(newTask.getStatus());
setType(newTask.getType());
setPauseSupported(newTask.getPauseSupported());
setStopSupported(newTask.getStopSupported());
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof TaskInfo)) {
return false;
}
TaskInfo newTask = (TaskInfo)obj;
if (newTask.getName().equals(getName()) && newTask.getDescription().equals(getDescription())
&& newTask.getReference().equals(getReference()) && newTask.getStatus().equals(getStatus())
&& newTask.getType() == getType() && newTask.getPauseSupported() == getPauseSupported()
&& newTask.getStopSupported() == getStopSupported()) {
return true;
}
return false;
}
}