All Downloads are FREE. Search and download functionalities are using the official Maven repository.

brooklyn.rest.domain.TaskSummary Maven / Gradle / Ivy

The newest version!
package brooklyn.rest.domain;

import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;

import brooklyn.util.collections.Jsonya;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;

public class TaskSummary {

  private final String id;
  private final String displayName;
  private final String entityId;
  private final String entityDisplayName;
  private final String description;
  private final Collection tags;
  
  private final Long submitTimeUtc;
  private final Long startTimeUtc;
  private final Long endTimeUtc;
  
  private final String currentStatus;
  private final Object result;
  private final boolean isError;
  private final boolean isCancelled; 

  private final List children;
  private final LinkWithMetadata submittedByTask;
  
  @JsonSerialize(include=Inclusion.NON_NULL)
  private final LinkWithMetadata blockingTask;
  @JsonSerialize(include=Inclusion.NON_NULL)
  private final String blockingDetails;
  
  private final String detailedStatus;
  
  @JsonSerialize(include=Inclusion.NON_NULL)
  private final Map streams;
  
  private final Map links;
  
  public TaskSummary(
          @JsonProperty("id") String id, 
          @JsonProperty("displayName") String displayName, 
          @JsonProperty("description") String description, 
          @JsonProperty("entityId") String entityId, 
          @JsonProperty("entityDisplayName") String entityDisplayName, 
          @JsonProperty("tags") Set tags,
          @JsonProperty("submitTimeUtc") Long submitTimeUtc, 
          @JsonProperty("startTimeUtc") Long startTimeUtc, 
          @JsonProperty("endTimeUtc") Long endTimeUtc, 
          @JsonProperty("currentStatus") String currentStatus, 
          @JsonProperty("result") Object result, 
          @JsonProperty("isError") boolean isError, 
          @JsonProperty("isCancelled") boolean isCancelled, 
          @JsonProperty("children") List children,
          @JsonProperty("submittedByTask") LinkWithMetadata submittedByTask,
          @JsonProperty("blockingTask") LinkWithMetadata blockingTask,
          @JsonProperty("blockingDetails") String blockingDetails,
          @JsonProperty("detailedStatus") String detailedStatus,
          @JsonProperty("streams") Map streams,
          @JsonProperty("links") Map links) {
    this.id = id;
    this.displayName = displayName;
    this.description = description;
    this.entityId = entityId;
    this.entityDisplayName = entityDisplayName;
    this.tags = ImmutableList.copyOf(tags);
    this.submitTimeUtc = submitTimeUtc;
    this.startTimeUtc = startTimeUtc;
    this.endTimeUtc = endTimeUtc;
    this.currentStatus = currentStatus;
    this.result = result;
    this.isError = isError;
    this.isCancelled = isCancelled;
    this.children = children;
    this.blockingDetails = blockingDetails;
    this.blockingTask = blockingTask;
    this.submittedByTask = submittedByTask;
    this.detailedStatus = detailedStatus;
    this.streams = streams;
    this.links = ImmutableMap.copyOf(links);
}


  public String getId() {
      return id;
  }
  
  public String getDisplayName() {
    return displayName;
  }

  public String getDescription() {
    return description;
  }

  public String getEntityId() {
      return entityId;
  }
  
  public String getEntityDisplayName() {
      return entityDisplayName;
  }
  
  public Collection getTags() {
    List result = new ArrayList();
    for (Object t: tags)
        result.add(Jsonya.convertToJsonPrimitive(t));
    return result;
  }

  @JsonIgnore
  public Collection getRawTags() {
      return tags;
    }

  public Long getSubmitTimeUtc() {
    return submitTimeUtc;
  }

  public Long getStartTimeUtc() {
    return startTimeUtc;
  }

  public Long getEndTimeUtc() {
    return endTimeUtc;
  }

  public String getCurrentStatus() {
    return currentStatus;
  }

  public Object getResult() {
    return result;
  }
  
  public boolean getIsError() {
    return isError;
  }
  
  public boolean getIsCancelled() {
    return isCancelled;
  }
  
  public List getChildren() {
      return children;
  }

  public LinkWithMetadata getSubmittedByTask() {
      return submittedByTask;
  }
  
  public LinkWithMetadata getBlockingTask() {
    return blockingTask;
  }
  
  public String getBlockingDetails() {
    return blockingDetails;
  }

  public String getDetailedStatus() {
      return detailedStatus;
  }
  
  public Map getStreams() {
      return streams;
  }

  public Map getLinks() {
      return links;
  }
  
  @Override
  public String toString() {
    return "TaskSummary{" +
        "id='" + id + '\'' +
        ", displayName='" + displayName + '\'' +
        ", currentStatus='" + currentStatus + '\'' +
        ", startTimeUtc='" + startTimeUtc + '\'' +
        ", endTimeUtc='" + endTimeUtc + '\'' +
        '}';
  }
}