]> git.basschouten.com Git - openhab-addons.git/blob
f5dc9dc365548a2c6365ec76630606e127cb4996
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 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.vdr.internal.svdrp;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16
17 /**
18  * The {@link SVDRPChannel} contains SVDRP Response Data for Channels
19  *
20  * @author Matthias Klocke - Initial contribution
21  */
22 @NonNullByDefault
23 public class SVDRPChannel {
24     private int number;
25     private String name = "";
26
27     private SVDRPChannel() {
28     }
29
30     /**
31      * parse object from SVDRP Client Response
32      *
33      * @param message SVDRP Client Response
34      * @return Channel Object
35      * @throws SVDRPParseResponseException thrown if response data is not parseable
36      */
37     public static SVDRPChannel parse(String message) throws SVDRPParseResponseException {
38         String number = message.substring(0, message.indexOf(" "));
39         String name = message.substring(message.indexOf(" ") + 1, message.length());
40         SVDRPChannel channel = new SVDRPChannel();
41         try {
42             channel.setNumber(Integer.parseInt(number));
43         } catch (NumberFormatException e) {
44             throw new SVDRPParseResponseException(e.getMessage(), e);
45         }
46         channel.setName(name);
47         return channel;
48     }
49
50     /**
51      * Get Channel Number
52      *
53      * @return Channel Number
54      */
55     public int getNumber() {
56         return number;
57     }
58
59     /**
60      * Set Channel Number
61      *
62      * @param number Channel Number
63      */
64     public void setNumber(int number) {
65         this.number = number;
66     }
67
68     /**
69      * Get Channel Name
70      *
71      * @return Channel Name
72      */
73     public String getName() {
74         return name;
75     }
76
77     /**
78      * Set Channel Name
79      *
80      * @param name Channel Name
81      */
82     public void setName(String name) {
83         this.name = name;
84     }
85
86     /**
87      * String Representation of SVDRPChannel Object
88      */
89     @Override
90     public String toString() {
91         StringBuilder sb = new StringBuilder();
92         if (number >= 0) {
93             sb.append("Number: " + String.valueOf(number) + System.lineSeparator());
94         }
95         sb.append("Name: " + name + System.lineSeparator());
96         return sb.toString();
97     }
98 }