1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
/*
* SonarQube
* Copyright (C) 2009-2020 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonar.api.config;
import java.util.Date;
import java.util.List;
import javax.annotation.CheckForNull;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.DateUtils;
import org.sonarsource.api.sonarlint.SonarLintSide;
/**
* @deprecated since 6.5 use {@link Configuration}. Implementation moved out of the API in 8.3. Only remains minimal interface to make some outdated plugins happy.
*/
@ServerSide
@ComputeEngineSide
@ScannerSide
@SonarLintSide
@Deprecated
public abstract class Settings {
/**
* @return {@code true} if the property has a non-default value, else {@code false}.
*/
public abstract boolean hasKey(String key);
/**
* The effective value of the specified property. Can return
* {@code null} if the property is not set and has no
* defined default value.
* <p>
* If the property is encrypted with a secret key,
* then the returned value is decrypted.
* </p>
*
* @throws IllegalStateException if value is encrypted but fails to be decrypted.
*/
@CheckForNull
public abstract String getString(String key);
/**
* Effective value as boolean. It is {@code false} if {@link #getString(String)}
* does not return {@code "true"}, even if it's not a boolean representation.
*
* @return {@code true} if the effective value is {@code "true"}, else {@code false}.
*/
public abstract boolean getBoolean(String key);
/**
* Effective value as {@code int}.
*
* @return the value as {@code int}. If the property does not have value nor default value, then {@code 0} is returned.
* @throws NumberFormatException if value is not empty and is not a parsable integer
*/
public abstract int getInt(String key);
/**
* Effective value as {@code long}.
*
* @return the value as {@code long}. If the property does not have value nor default value, then {@code 0L} is returned.
* @throws NumberFormatException if value is not empty and is not a parsable {@code long}
*/
public abstract long getLong(String key);
/**
* Effective value as {@link Date}, without time fields. Format is {@link DateUtils#DATE_FORMAT}.
*
* @return the value as a {@link Date}. If the property does not have value nor default value, then {@code null} is returned.
* @throws RuntimeException if value is not empty and is not in accordance with {@link DateUtils#DATE_FORMAT}.
*/
@CheckForNull
public abstract Date getDate(String key);
/**
* Effective value as {@link Date}, with time fields. Format is {@link DateUtils#DATETIME_FORMAT}.
*
* @return the value as a {@link Date}. If the property does not have value nor default value, then {@code null} is returned.
* @throws RuntimeException if value is not empty and is not in accordance with {@link DateUtils#DATETIME_FORMAT}.
*/
@CheckForNull
public abstract Date getDateTime(String key);
/**
* Effective value as {@code Float}.
*
* @return the value as {@code Float}. If the property does not have value nor default value, then {@code null} is returned.
* @throws NumberFormatException if value is not empty and is not a parsable number
*/
@CheckForNull
public abstract Float getFloat(String key);
/**
* Effective value as {@code Double}.
*
* @return the value as {@code Double}. If the property does not have value nor default value, then {@code null} is returned.
* @throws NumberFormatException if value is not empty and is not a parsable number
*/
@CheckForNull
public abstract Double getDouble(String key);
/**
* Value is split by comma and trimmed. Never returns null.
* <br>
* Examples :
* <ul>
* <li>"one,two,three " -> ["one", "two", "three"]</li>
* <li>" one, two, three " -> ["one", "two", "three"]</li>
* <li>"one, , three" -> ["one", "", "three"]</li>
* </ul>
*/
public abstract String[] getStringArray(String key);
/**
* Value is split by carriage returns.
*
* @return non-null array of lines. The line termination characters are excluded.
* @since 3.2
*/
public abstract String[] getStringLines(String key);
/**
* Value is split and trimmed.
*/
public abstract String[] getStringArrayBySeparator(String key, String separator);
public abstract List<String> getKeysStartingWith(String prefix);
}
|