2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.bluetooth.bluegiga.internal.enumeration;
15 import java.util.HashMap;
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19 import org.eclipse.jdt.annotation.Nullable;
22 * Class to implement the BlueGiga Enumeration <b>AttributeValueType</b>.
24 * These enumerations are in the Attribute Client class
26 * Note that this code is autogenerated. Manual changes may be overwritten.
28 * @author Chris Jackson - Initial contribution of Java code generator
31 public enum AttributeValueType {
33 * Default unknown value
40 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_READ(0x0000),
43 * [1] Value was notified
45 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_NOTIFY(0x0001),
48 * [2] Value was indicated
50 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_INDICATE(0x0002),
55 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_READ_BY_TYPE(0x0003),
58 * [4] Value was part of a long attribute
60 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_READ_BLOB(0x0004),
63 * [5] Value was indicated and the remote device is waiting for a confirmation. Indicate
64 * Confirm command can be used to send a confirmation.
66 ATTCLIENT_ATTRIBUTE_VALUE_TYPE_INDICATE_RSP_REQ(0x0005);
69 * A mapping between the integer code and its corresponding type to
70 * facilitate lookup by code.
72 private static @Nullable Map<Integer, AttributeValueType> codeMapping;
76 private AttributeValueType(int key) {
81 * Lookup function based on the type code. Returns {@link UNKNOWN} if the code does not exist.
83 * @param attributeValueType
85 * @return enumeration value.
87 public static AttributeValueType getAttributeValueType(int attributeValueType) {
88 Map<Integer, AttributeValueType> localCodeMapping = codeMapping;
89 if (localCodeMapping == null) {
90 localCodeMapping = new HashMap<>();
91 for (AttributeValueType s : values()) {
92 localCodeMapping.put(s.key, s);
94 codeMapping = localCodeMapping;
97 return localCodeMapping.getOrDefault(attributeValueType, UNKNOWN);
101 * Returns the BlueGiga protocol defined value for this enum
103 * @return the BGAPI enumeration key
105 public int getKey() {