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

com.hubspot.singularity.SingularityRequestWithState Maven / Gradle / Ivy

The newest version!
package com.hubspot.singularity;

import javax.annotation.Nonnull;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Function;
import com.google.common.base.Optional;

public class SingularityRequestWithState {

  private final SingularityRequest request;
  private final RequestState state;
  private final long timestamp;

  public static Function REQUEST_STATE_TO_REQUEST_ID = new Function() {

    @Override
    public String apply(@Nonnull SingularityRequestWithState input) {
      return input.getRequest().getId();
    }

  };

  public static String getRequestState(Optional maybeRequestWithState) {
    if (maybeRequestWithState.isPresent()) {
      return maybeRequestWithState.get().getState().name();
    }
    return "MISSING";
  }

  public static boolean isActive(Optional maybeRequestWithState) {
    return maybeRequestWithState.isPresent() && maybeRequestWithState.get().getState().isRunnable();
  }

  @JsonCreator
  public SingularityRequestWithState(@JsonProperty("request") SingularityRequest request, @JsonProperty("state") RequestState state, @JsonProperty("timestamp") long timestamp) {
    this.request = request;
    this.state = state;
    this.timestamp = timestamp;
  }

  public long getTimestamp() {
    return timestamp;
  }

  public RequestState getState() {
    return state;
  }

  public SingularityRequest getRequest() {
    return request;
  }

  @Override
  public String toString() {
    return "SingularityRequestWithState [request=" + request + ", state=" + state + ", timestamp=" + timestamp + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy