package com.dataart.android.devicehive.device;
import java.io.Serializable;
import com.dataart.android.devicehive.ObjectWrapper;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Command execution result which is reported to the server.
*/
public class CommandResult implements Parcelable {
/**
* Command status "Completed" value.
*/
public static final String STATUS_COMLETED = "Completed";
/**
* Command status "Failed" value.
*/
public static final String STATUS_FAILED = "Failed";
private final String status;
private final ObjectWrapper<Serializable> result;
/**
* Constructs command result with given status and result.
*
* @param status
* Command status.
* @param result
* Command execution result.
*/
public CommandResult(String status, Serializable result) {
this.status = status;
this.result = new ObjectWrapper<Serializable>(result);
}
/**
* Get command status.
*
* @return Command status.
*/
public String getStatus() {
return status;
}
/**
* Get command execution result.
*
* @return Command execution result.
*/
public Serializable getResult() {
return result;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(status);
dest.writeSerializable(result.getObject());
}
public static Parcelable.Creator<CommandResult> CREATOR = new Parcelable.Creator<CommandResult>() {
@Override
public CommandResult[] newArray(int size) {
return new CommandResult[size];
}
@Override
public CommandResult createFromParcel(Parcel source) {
return new CommandResult(source.readString(),
source.readSerializable());
}
};
}