package com.beowulfe.hap.accessories.properties;
import com.beowulfe.hap.accessories.SecuritySystem;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
/**
* The target state of a {@link SecuritySystem}.
*
* @author Gaston Dombiak
*/
public enum TargetSecuritySystemState {
/**
* The home is occupied and residents are active.
*/
STAY_ARM(0),
/**
* The home is unoccupied.
*/
AWAY_ARM(1),
/**
* The home is occupied and residents are sleeping.
*/
NIGHT_ARM(2),
/**
* The security system is disarmed.
*/
DISARMED(3);
private final static Map<Integer, TargetSecuritySystemState> reverse;
static {
reverse = Arrays.stream(TargetSecuritySystemState.values()).collect(Collectors
.toMap(TargetSecuritySystemState::getCode, t -> t));
}
public static TargetSecuritySystemState fromCode(Integer code) {
return reverse.get(code);
}
private final int code;
TargetSecuritySystemState(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}