]> git.basschouten.com Git - openhab-addons.git/blob
5ac9cf644dfd1663d32d870331d386e3284977d1
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2021 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.omnilink.internal;
14
15 import java.util.Arrays;
16 import java.util.Set;
17
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19
20 /**
21  * The {@link SystemType} enum defines the two supported system types which can
22  * interface with the binding
23  *
24  * @author Craig Hamilton - Initial contribution
25  */
26 @NonNullByDefault
27 public enum SystemType {
28     OMNI(16, 30, 38),
29     LUMINA(36, 37);
30
31     private final Set<Integer> modelNumbers;
32
33     SystemType(Integer... modelNumbers) {
34         this.modelNumbers = Set.of(modelNumbers);
35     }
36
37     public static SystemType getType(int modelNumber) {
38         return Arrays.stream(values()).filter(s -> s.modelNumbers.contains(modelNumber)).findFirst()
39                 .orElseThrow(IllegalArgumentException::new);
40     }
41 }