]> git.basschouten.com Git - openhab-addons.git/blob
6d727769d6baaaa9173f7b44096cd8c46a8792b9
[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.dbquery.internal.config;
14
15 import java.util.StringJoiner;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.eclipse.jdt.annotation.Nullable;
19
20 /**
21  * Contains fields mapping query things parameters.
22  *
23  * @author Joan Pujol - Initial contribution
24  */
25 @NonNullByDefault
26 public class QueryConfiguration {
27     public static final int NO_INTERVAL = 0;
28
29     private String query = "";
30     private int interval;
31     private int timeout;
32     private boolean scalarResult;
33     private boolean hasParameters;
34     private @Nullable String scalarColumn = "";
35
36     public QueryConfiguration() {
37         // Used only when configuration is created by reflection using ConfigMapper
38     }
39
40     public QueryConfiguration(String query, int interval, int timeout, boolean scalarResult,
41             @Nullable String scalarColumn, boolean hasParameters) {
42         this.query = query;
43         this.interval = interval;
44         this.timeout = timeout;
45         this.scalarResult = scalarResult;
46         this.scalarColumn = scalarColumn;
47         this.hasParameters = hasParameters;
48     }
49
50     public String getQuery() {
51         return query;
52     }
53
54     public int getInterval() {
55         return interval;
56     }
57
58     public int getTimeout() {
59         return timeout;
60     }
61
62     public boolean isScalarResult() {
63         return scalarResult;
64     }
65
66     public @Nullable String getScalarColumn() {
67         var currentScalarColumn = scalarColumn;
68         return currentScalarColumn != null ? currentScalarColumn : "";
69     }
70
71     public boolean isScalarColumnDefined() {
72         return !getScalarColumn().isBlank();
73     }
74
75     public boolean isHasParameters() {
76         return hasParameters;
77     }
78
79     @Override
80     public String toString() {
81         return new StringJoiner(", ", QueryConfiguration.class.getSimpleName() + "[", "]").add("query='" + query + "'")
82                 .add("interval=" + interval).add("timeout=" + timeout).add("scalarResult=" + scalarResult)
83                 .add("hasParameters=" + hasParameters).add("scalarColumn='" + scalarColumn + "'").toString();
84     }
85 }