package net.techreadiness.service;
import java.io.Serializable;
import net.techreadiness.annotation.CoreDataModificationStatus.ModificationType;
import com.google.common.base.Objects;
public class DataModificationStatus implements Serializable {
private static final long serialVersionUID = 1L;
public enum ModificationState {
NONE, REQUESTED, SUCCESS, FAILURE
}
private ModificationState modificationState = ModificationState.NONE;
private String message;
// TODO: is this necessary?
private ModificationType modificationType = ModificationType.NONE;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public ModificationState getModificationState() {
return modificationState;
}
public void setModificationState(ModificationState modificationState) {
// This is used somewhat as state. You should only be able to go to a
// "higher" type state (eg. can't go from failure to success). This
// works due to being reset() once displayed to the user.
if (this.modificationState.ordinal() < modificationState.ordinal()) {
this.modificationState = modificationState;
}
}
@Override
public String toString() {
return Objects.toStringHelper(this).add("message", message).add("modificationState", modificationState.toString())
.toString();
}
public void reset() {
message = "";
modificationState = ModificationState.NONE;
modificationType = ModificationType.NONE;
}
public ModificationType getModificationType() {
return modificationType;
}
public void setModificationType(ModificationType modificationType) {
this.modificationType = modificationType;
}
}