package org.yamcs.xtce; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Alarm conditions for Enumerations * An additional check needs to be performed to ensure that the enumeration values in the alarms are legal * enumeration values for the Parameter * @author nm * */ public class EnumerationAlarm extends AlarmType implements Serializable{ private static final long serialVersionUID=200707121420L; private List<EnumerationAlarmItem> alarmList=new ArrayList<EnumerationAlarmItem>(); /** * If none from the list above applies, then this one is used */ AlarmLevels defaultAlarmLevel=AlarmLevels.normal; public void addAlarm(String label, AlarmLevels level) { alarmList.add(new EnumerationAlarmItem(label,level)); } public AlarmLevels getDefaultAlarmLevel() { return defaultAlarmLevel; } public List<EnumerationAlarmItem> getAlarmList() { return alarmList; } public void setAlarmList(List<EnumerationAlarmItem> alarmList) { this.alarmList=alarmList; } @Override public String toString() { return "EnumerationAlarm(defaultLevel:"+defaultAlarmLevel+", alarmList: "+alarmList; } static public class EnumerationAlarmItem implements Serializable { private static final long serialVersionUID = 200707121420L; AlarmLevels alarmLevel; String enumerationLabel; EnumerationAlarmItem(String label, AlarmLevels level) { this.enumerationLabel = label; this.alarmLevel=level; } public String getEnumerationLabel() { return enumerationLabel; } public AlarmLevels getAlarmLevel() { return alarmLevel; } @Override public String toString() { return "("+enumerationLabel+"->"+alarmLevel+")"; } } public void setDefaultAlarmLevel(AlarmLevels level) { this.defaultAlarmLevel=level; } }