package com.intrbiz.bergamot.model.message.result;
import java.util.UUID;
import java.util.function.BiPredicate;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.intrbiz.bergamot.model.message.event.check.CheckEvent;
/**
* The result of a active check
*/
@JsonTypeName("bergamot.result.active")
public class ActiveResultMO extends ResultMO
{
@JsonProperty("check_type")
private String checkType;
@JsonProperty("check_id")
private UUID checkId;
@JsonProperty("site_id")
private UUID siteId;
@JsonProperty("processing_pool")
private int processingPool;
@JsonProperty("check")
private CheckEvent check;
@JsonProperty("saved_state")
private String savedState;
public ActiveResultMO()
{
super();
}
public String getCheckType()
{
return checkType;
}
public void setCheckType(String checkType)
{
this.checkType = checkType;
}
public UUID getCheckId()
{
return checkId;
}
public void setCheckId(UUID checkId)
{
this.checkId = checkId;
}
public CheckEvent getCheck()
{
return check;
}
public void setCheck(CheckEvent check)
{
this.check = check;
}
public UUID getSiteId()
{
return siteId;
}
public void setSiteId(UUID siteId)
{
this.siteId = siteId;
}
public int getProcessingPool()
{
return processingPool;
}
public void setProcessingPool(int processingPool)
{
this.processingPool = processingPool;
}
public String getSavedState()
{
return savedState;
}
public void setSavedState(String savedState)
{
this.savedState = savedState;
}
/**
* Create a Result with the details of this check
*
* @return
*/
@JsonIgnore
public ActiveResultMO fromCheck(CheckEvent check)
{
this.setId(check.getId());
this.setCheckType(check.getCheckType());
this.setCheckId(check.getCheckId());
this.setSiteId(check.getSiteId());
this.setProcessingPool(check.getProcessingPool());
this.setCheck(check);
this.setExecuted(System.currentTimeMillis());
this.setAdhocId(check.getAdhocId());
return this;
}
public ActiveResultMO state(String savedState)
{
this.savedState = savedState;
return this;
}
@Override
public ActiveResultMO runtime(double runtime)
{
super.runtime(runtime);
return this;
}
@Override
public ActiveResultMO pending(String output)
{
super.pending(output);
return this;
}
@Override
public ActiveResultMO info(String output)
{
super.info(output);
return this;
}
@Override
public ActiveResultMO ok(String output)
{
super.ok(output);
return this;
}
@Override
public ActiveResultMO warning(String output)
{
super.warning(output);
return this;
}
@Override
public ActiveResultMO critical(String output)
{
super.critical(output);
return this;
}
@Override
public ActiveResultMO unknown(String output)
{
super.unknown(output);
return this;
}
@Override
public ActiveResultMO error(Throwable t)
{
super.error(t);
return this;
}
@Override
public ActiveResultMO error(String message)
{
super.error(message);
return this;
}
@Override
public ActiveResultMO timeout(String message)
{
super.timeout(message);
return this;
}
@Override
public ActiveResultMO disconnected(String message)
{
super.disconnected(message);
return this;
}
@Override
public ActiveResultMO action(String message)
{
super.action(message);
return this;
}
@Override
@JsonIgnore
public <V,T> ActiveResultMO applyThreshold(V value, BiPredicate<V,T> match, T warning, T critical, String message)
{
super.applyThreshold(value, match, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public <V,T> ActiveResultMO applyThresholds(Iterable<V> values, BiPredicate<V,T> match, T warning, T critical, String message)
{
super.applyThresholds(values, match, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThreshold(Double value, Double warning, Double critical, String message)
{
super.applyThreshold(value, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThreshold(Double value, Double warning, Double critical, String message)
{
super.applyThreshold(value, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThreshold(Float value, Float warning, Float critical, String message)
{
super.applyThreshold(value, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThreshold(Float value, Float warning, Float critical, String message)
{
super.applyThreshold(value, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThreshold(Long value, Long warning, Long critical, String message)
{
super.applyThreshold(value, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThreshold(Long value, Long warning, Long critical, String message)
{
super.applyThreshold(value, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThreshold(Integer value, Integer warning, Integer critical, String message)
{
super.applyThreshold(value, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThreshold(Integer value, Integer warning, Integer critical, String message)
{
super.applyThreshold(value, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThresholds(Iterable<Double> values, Double warning, Double critical, String message)
{
super.applyThresholds(values, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThresholds(Iterable<Double> values, Double warning, Double critical, String message)
{
super.applyThresholds(values, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThresholds(Iterable<Float> values, Float warning, Float critical, String message)
{
super.applyThresholds(values, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThresholds(Iterable<Float> values, Float warning, Float critical, String message)
{
super.applyThresholds(values, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThresholds(Iterable<Long> values, Long warning, Long critical, String message)
{
super.applyThresholds(values, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThresholds(Iterable<Long> values, Long warning, Long critical, String message)
{
super.applyThresholds(values, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyGreaterThanThresholds(Iterable<Integer> values, Integer warning, Integer critical, String message)
{
super.applyThresholds(values, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyLessThanThresholds(Iterable<Integer> values, Integer warning, Integer critical, String message)
{
super.applyThresholds(values, (v,t) -> v < t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public <V,T> ActiveResultMO applyRange(V value, BiPredicate<V,T> lowerMatch, BiPredicate<V,T> upperMatch, T[] warning, T[] critical, String message)
{
super.applyRange(value, lowerMatch, upperMatch, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyRange(Long value, Long[] warning, Long[] critical, String message)
{
super.applyRange(value, (v,t) -> v < t, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyRange(Integer value, Integer[] warning, Integer[] critical, String message)
{
super.applyRange(value, (v,t) -> v < t, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyRange(Double value, Double[] warning, Double[] critical, String message)
{
super.applyRange(value, (v,t) -> v < t, (v,t) -> v > t, warning, critical, message);
return this;
}
@Override
@JsonIgnore
public ActiveResultMO applyRange(Float value, Float[] warning, Float[] critical, String message)
{
super.applyRange(value, (v,t) -> v < t, (v,t) -> v > t, warning, critical, message);
return this;
}
}