You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/main/java/fr/sandro642/github/api/ApiResponse.java
+57-4Lines changed: 57 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
packagefr.sandro642.github.api;
2
2
3
+
importjava.util.HashMap;
3
4
importjava.util.Map;
4
5
5
6
/**
@@ -16,14 +17,18 @@ public class ApiResponse<T> {
16
17
* msg : Message d'erreur ou de succès.
17
18
* code : Code de statut de la réponse (par exemple, HTTP status code).
18
19
* data : Données spécifiques de la réponse, stockées dans une Map.
20
+
* extra : Champs supplémentaires qui ne font pas partie des champs standard.
19
21
*/
20
22
privatebooleanerr;
21
23
privateStringmsg;
22
24
privateintcode;
23
25
privateMap<String, Object> data;
26
+
privateMap<String, Object> extra;
24
27
25
28
// Constructeurs
26
-
publicApiResponse() {}
29
+
publicApiResponse() {
30
+
this.extra = newHashMap<>();
31
+
}
27
32
28
33
/**
29
34
* Constructeur pour initialiser la réponse d'API avec des valeurs spécifiques.
@@ -37,6 +42,7 @@ public ApiResponse(boolean err, String msg, int code, Map<String, Object> data)
37
42
this.msg = msg;
38
43
this.code = code;
39
44
this.data = data;
45
+
this.extra = newHashMap<>();
40
46
}
41
47
42
48
/**
@@ -105,9 +111,15 @@ public void setData(Map<String, Object> data) {
105
111
106
112
/**
107
113
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé.
114
+
* @deprecated En raison de la nature générique de cette méthode créant des erreurs, il est recommandé d'utiliser les méthodes spécifiques pour chaque type de données. Cette méthode est obsolète et peut être supprimée dans les futures versions.
115
+
* @see #getSpecDataBoolean(String key)
116
+
* @see #getSpecDataDouble(String key)
117
+
* @see #getSpecDataString(String key)
118
+
* @see #getSpecDataInteger (String key)
108
119
* @param key La clé pour accéder à la donnée.
109
120
* @return La valeur associée à la clé dans la Map 'data'.
110
121
*/
122
+
@Deprecated
111
123
publicObjectgetSpecData(Stringkey) {
112
124
if (data == null) {
113
125
thrownewRuntimeException("Le champ 'data' est null.");
@@ -187,17 +199,58 @@ public Integer getSpecDataInteger(String key) {
187
199
}
188
200
}
189
201
202
+
/**
203
+
* Récupère une donnée supplémentaire à partir de la Map 'extra' en utilisant une clé.
204
+
* Cette méthode permet d'accéder à des champs qui ne font pas partie des champs standard (err, msg, code, data).
205
+
* @param key La clé pour accéder à la donnée supplémentaire.
206
+
* @return La valeur associée à la clé dans la Map 'extra', ou null si la clé n'existe pas.
207
+
*/
208
+
publicObjectgetExtra(Stringkey) {
209
+
if (extra == null) {
210
+
returnnull;
211
+
}
212
+
returnextra.get(key);
213
+
}
214
+
215
+
/**
216
+
* Définit une donnée supplémentaire dans la Map 'extra'.
217
+
* @param key La clé pour la donnée supplémentaire.
218
+
* @param value La valeur à associer à la clé.
219
+
*/
220
+
publicvoidsetExtra(Stringkey, Objectvalue) {
221
+
if (extra == null) {
222
+
extra = newHashMap<>();
223
+
}
224
+
extra.put(key, value);
225
+
}
226
+
227
+
/**
228
+
* Récupère toutes les données supplémentaires.
229
+
* @return La Map contenant toutes les données supplémentaires.
230
+
*/
231
+
publicMap<String, Object> getExtraData() {
232
+
returnextra;
233
+
}
234
+
235
+
/**
236
+
* Définit toutes les données supplémentaires.
237
+
* @param extra La Map contenant les données supplémentaires.
0 commit comments