package edu.ucdavis.cstars.client.tasks;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
/**
* Represents information pertaining to the execution of an asynchronous GP task on the server.
*
* @author Justin Merz
*/
public class JobInfo extends JavaScriptObject {
public static enum StatusType {
STATUS_CANCELLED("esriJobCancelled"),
STATUS_CANCELLING("esriJobCancelling"),
STATUS_DELETED("esriJobDeleted"),
STATUS_DELETING("esriJobDeleting"),
STATUS_EXECUTING("esriJobExecuting"),
STATUS_FAILED("esriJobFailed"),
STATUS_NEW("esriJobNew"),
STATUS_SUBMITTED("esriJobSubmitted"),
STATUS_SUCCEEDED("esriJobSucceeded"),
STATUS_TIMED_OUT("esriJobTimedOut"),
STATUS_WAITING("esriJobWaiting");
private String val = "";
StatusType(String value){
val = value;
}
public String getValue() {
return val;
}
}
protected JobInfo() {}
/**
* The unique job ID assigned by ArcGIS Server.
*
* @return String
*/
public final native String getJobId() /*-{
return this.jobId;
}-*/;
/**
* The job status.
*
* @return StatusType
*/
public final StatusType getJobStatus() {
String js = _getJobStatus();
for( int i = 0 ; i < StatusType.values().length; i++ ){
if( StatusType.values()[i].getValue().contentEquals(js) )
return StatusType.values()[i];
}
return null;
}
private final native String _getJobStatus() /*-{
return this.jobStatus;
}-*/;
/**
* An array of messages that include the message type and a description.
*
* @return JsArray<GPMessage>
*/
public final native JsArray<GPMessage> getMessages() /*-{
return this.messages;
}-*/;
}