/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.binding.dscalarm1.internal;
import java.util.HashMap;
import java.util.Map;
/**
* Used to map item types from the binding string to a ENUM value
*
* @author Russell Stephens
* @since 1.6.0
*/
public enum DSCAlarmItemType {
PANEL_CONNECTION("panel_connection"),
PANEL_MESSAGE("panel_message"),
PANEL_COMMAND("panel_command"),
PANEL_SYSTEM_ERROR("panel_system_error"),
PANEL_TROUBLE_MESSAGE("panel_trouble_message"),
PANEL_TROUBLE_LED("panel_trouble_led"),
PANEL_SERVICE_REQUIRED("panel_service_required"),
PANEL_AC_TROUBLE("panel_ac_trouble"),
PANEL_TELEPHONE_TROUBLE("panel_telephone_trouble"),
PANEL_FTC_TROUBLE("panel_ftc_trouble"),
PANEL_ZONE_FAULT("panel_zone_fault"),
PANEL_ZONE_TAMPER("panel_zone_tamper"),
PANEL_ZONE_LOW_BATTERY("panel_zone_low_battery"),
PANEL_TIME_LOSS("panel_time_loss"),
PANEL_TIME("panel_time"),
PANEL_TIME_STAMP("panel_time_stamp"),
PANEL_TIME_BROADCAST("panel_time_broadcast"),
PANEL_FIRE_KEY_ALARM("panel_fire_key_alarm"),
PANEL_PANIC_KEY_ALARM("panel_panic_key_alarm"),
PANEL_AUX_KEY_ALARM("panel_aux_key_alarm"),
PANEL_AUX_INPUT_ALARM("panel_aux_input_alarm"),
PARTITION_STATUS("partition_status"),
PARTITION_ARM_MODE("partition_arm_mode"),
PARTITION_ARMED("partition_armed"),
PARTITION_ENTRY_DELAY("partition_entry_delay"),
PARTITION_EXIT_DELAY("partition_exit_delay"),
PARTITION_IN_ALARM("partition_in_alarm"),
PARTITION_OPENING_CLOSING_MODE("partition_opening_closing_mode"),
ZONE_GENERAL_STATUS("zone_general_status"),
ZONE_ALARM_STATUS("zone_alarm_status"),
ZONE_TAMPER_STATUS("zone_tamper_status"),
ZONE_FAULT_STATUS("zone_fault_status"),
ZONE_BYPASS_MODE("zone_bypass_mode"),
ZONE_IN_ALARM("zone_in_alarm"),
ZONE_TAMPER("zone_tamper"),
ZONE_FAULT("zone_fault"),
ZONE_TRIPPED("zone_tripped"),
ZONE_STATE("zone_state"),
KEYPAD_READY_LED("keypad_ready_led"),
KEYPAD_ARMED_LED("keypad_armed_led"),
KEYPAD_MEMORY_LED("keypad_memory_led"),
KEYPAD_BYPASS_LED("keypad_bypass_led"),
KEYPAD_TROUBLE_LED("keypad_trouble_led"),
KEYPAD_PROGRAM_LED("keypad_program_led"),
KEYPAD_FIRE_LED("keypad_fire_led"),
KEYPAD_BACKLIGHT_LED("keypad_backlight_led"),
KEYPAD_AC_LED("keypad_ac_led"),
KEYPAD_LCD_UPDATE("keypad_lcd_update"),
KEYPAD_LCD_CURSOR("keypad_lcd_cursor");
/**
* The string found in a binding configuration
*/
private String label;
/**
* Lookup map to get a DSCAlarmItemType from its label
*/
private static Map<String, DSCAlarmItemType> labelToDSCAlarmItemType;
/**
* Constructor
*
* @param label
*/
private DSCAlarmItemType(String label) {
this.label = label;
}
/**
* Initialize the lookup map that gets a DSCAlarmItemType value from a string label
*/
private static void initMapping() {
labelToDSCAlarmItemType = new HashMap<String, DSCAlarmItemType>();
for (DSCAlarmItemType s : values()) {
labelToDSCAlarmItemType.put(s.label, s);
}
}
/**
* Returns the label of the DSCAlarmItemType Values enumeration
*
* @return the label
*/
public String getLabel() {
return label;
}
/**
* Lookup function based on the binding type label
* Returns null if the binding type is not found
*
* @param label
* @return enum value
*/
public static DSCAlarmItemType getDSCAlarmItemType(String label) {
if (labelToDSCAlarmItemType == null) {
initMapping();
}
return labelToDSCAlarmItemType.get(label);
}
}