Arcane  v3.16.8.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ISimpleTableInternalMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ISimpleTableInternalMng.h (C) 2000-2025 */
9/* */
10/* Interface représentant un gestionnaire de SimpleTableInternal. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ISIMPLETABLEINTERNALMNG_H
13#define ARCANE_CORE_ISIMPLETABLEINTERNALMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Array.h"
18#include "arcane/utils/Array2.h"
19
20#include "arcane/core/SimpleTableInternal.h"
21#include "arcane/core/ISubDomain.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33/**
34 * @brief Interface de classe représentant un gestionnaire
35 * de SimpleTableInternal (aka STI).
36 *
37 * Ce gestionnaire permet de faire plusieurs types d'opérations
38 * sur le STI : ajout de lignes, de colonnes, de valeurs, &c.
39 *
40 * Il y a deux modes d'exploitations (qui peuvent être mélangés) :
41 * - en utilisant les noms ou positions des lignes/colonnes,
42 * - en utilisant un pointeur de position dans le tableau.
43 *
44 * Le premier mode est le plus simple à utiliser et est suffisant
45 * pour la plupart des utilisateurs. On donne un nom (ou une position)
46 * de ligne ou de colonne et une valeur, et cette valeur est placée
47 * à la suite des autres valeurs sur la ligne ou sur la colonne.
48 *
49 * Le second mode est plus avancé et sert surtout à remplacer des
50 * élements déjà présent ou à optimiser les performances (s'il y a
51 * 40 lignes, 40 valeurs à ajouter à la suite et qu'on utilise les
52 * noms des colonnes 40 fois, cela fait 40 recherches de String dans un
53 * StringUniqueArray, ce qui n'est pas top niveau optimisation).
54 * Un pointeur représentant le dernier élement ajouté est présent dans
55 * STI. On peut modifier les élements autour de ce pointeur (haut, bas
56 * gauche, droite) avec les méthodes présentes.
57 * Ce pointeur peut être placé n'importe où grâce au méthodes element().
58 * Ce pointeur n'est pas lu par les méthodes du premier mode mais est
59 * mis à jour par ces dernières.
60 */
61class ARCANE_CORE_EXPORT ISimpleTableInternalMng
62{
63 public:
64 virtual ~ISimpleTableInternalMng() = default;
65
66 public:
67 /*---------------------------------------------------------------------------*/
68 /*---------------------------------------------------------------------------*/
69
70 /**
71 * @brief Méthode permettant d'effacer le contenu
72 * du SimpleTableInternal.
73 */
74 virtual void clearInternal() = 0;
75
76 /*---------------------------------------------------------------------------*/
77 /*---------------------------------------------------------------------------*/
78
79 /**
80 * @brief Méthode permettant d'ajouter une ligne.
81 *
82 * @param row_name Le nom de la ligne. Doit être non vide.
83 * @return Integer La position de la ligne dans le tableau
84 * (-1 si le nom donné est incorrect).
85 */
86 virtual Integer addRow(const String& row_name) = 0;
87 /**
88 * @brief Méthode permettant d'ajouter une ligne.
89 *
90 * Si le nombre d'élements dans 'elements' est plus grand que le
91 * nombre de colonnes, l'ajout s'effectue quand même (mais les
92 * éléments en trop ne seront pas ajoutés).
93 *
94 * @param row_name Le nom de la ligne. Doit être non vide.
95 * @param elements Les éléments à insérer sur la ligne.
96 * @return Integer La position de la ligne dans le tableau.
97 * (-1 si le nom donné est incorrect).
98 */
99 virtual Integer addRow(const String& row_name, ConstArrayView<Real> elements) = 0;
100 /**
101 * @brief Méthode permettant d'ajouter plusieurs lignes.
102 *
103 * @param rows_names Les noms des lignes. Chaque nom doit être non vide.
104 * @return true Si toutes les lignes ont été créées.
105 * @return false Si toutes les lignes n'ont pas été créées.
106 */
107 virtual bool addRows(StringConstArrayView rows_names) = 0;
108
109 /*---------------------------------------------------------------------------*/
110 /*---------------------------------------------------------------------------*/
111
112 /**
113 * @brief Méthode permettant d'ajouter une colonne.
114 *
115 * @param column_name Le nom de la colonne. Doit être non vide.
116 * @return Integer La position de la colonne dans le tableau.
117 * (-1 si le nom donné est incorrect).
118 */
119 virtual Integer addColumn(const String& column_name) = 0;
120 /**
121 * @brief Méthode permettant d'ajouter une colonne.
122 *
123 * Si le nombre d'élements dans 'elements' est plus grand que le
124 * nombre de lignes, l'ajout s'effectue quand même (mais les
125 * éléments en trop ne seront pas ajoutés).
126 *
127 * @param column_name Le nom de la colonne. Doit être non vide.
128 * @param elements Les éléments à ajouter sur la colonne.
129 * @return Integer La position de la colonne dans le tableau.
130 * (-1 si le nom donné est incorrect).
131 */
132 virtual Integer addColumn(const String& column_name, ConstArrayView<Real> elements) = 0;
133 /**
134 * @brief Méthode permettant d'ajouter plusieurs colonnes.
135 *
136 * @param rows_names Les noms des colonnes. Chaque nom doit être non vide.
137 * @return true Si toutes les colonnes ont été créées.
138 * @return false Si toutes les colonnes n'ont pas été créées.
139 */
140 virtual bool addColumns(StringConstArrayView columns_names) = 0;
141
142 /*---------------------------------------------------------------------------*/
143 /*---------------------------------------------------------------------------*/
144
145 /**
146 * @brief Méthode permettant d'ajouter un élément à une ligne.
147 *
148 * @param position La position de la ligne.
149 * @param element L'élément à ajouter.
150 * @return true Si l'élément a pu être ajouté.
151 * @return false Si l'élément n'a pas pu être ajouté.
152 */
153 virtual bool addElementInRow(Integer position, Real element) = 0;
154 /**
155 * @brief Méthode permettant l'ajouter un élément sur une ligne.
156 *
157 * @param row_name Le nom de la ligne.
158 * @param element L'élément à ajouter.
159 * @param create_if_not_exist Pour savoir si l'on doit créer la
160 * ligne si elle n'existe pas encore.
161 * @return true Si l'élément a pu être ajouté.
162 * @return false Si l'élément n'a pas pu être ajouté.
163 */
164 virtual bool addElementInRow(const String& row_name, Real element, bool create_if_not_exist = true) = 0;
165 /**
166 * @brief Méthode permettant d'ajouter un élément sur la ligne
167 * dernièrement manipulée.
168 *
169 * Cette méthode diffère de 'editElementRight()' car ici, on ajoute
170 * un élément à la fin de la ligne, pas forcement après le
171 * dernier élement ajouté.
172 *
173 * @param element L'élément à ajouter.
174 * @return true Si l'élément a été ajouté.
175 * @return false Si l'élément n'a pas pu être ajouté.
176 */
178
179 /*---------------------------------------------------------------------------*/
180 /*---------------------------------------------------------------------------*/
181
182 /**
183 * @brief Méthode permettant d'ajouter plusieurs éléments sur une ligne.
184 *
185 * Si le nombre d'élements dans 'elements' est plus grand que le
186 * nombre de colonnes disponibles, l'ajout s'effectue quand même (mais les
187 * éléments en trop ne seront pas ajoutés) et on aura un return false.
188 *
189 * @param position La position de la ligne.
190 * @param elements Le tableau d'élement à ajouter.
191 * @return true Si tous les éléments ont été ajoutés.
192 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
193 */
194 virtual bool addElementsInRow(Integer position, ConstArrayView<Real> elements) = 0;
195 /**
196 * @brief Méthode permettant d'ajouter plusieurs éléments sur une ligne.
197 *
198 * Si le nombre d'élements dans 'elements' est plus grand que le
199 * nombre de colonnes disponibles, l'ajout s'effectue quand même (mais les
200 * éléments en trop ne seront pas ajoutés) et on aura un return false.
201 *
202 * @param row_name Le nom de la ligne.
203 * @param elements Le tableau d'élement à ajouter.
204 * @param create_if_not_exist Pour savoir si l'on doit créer la ligne
205 * si elle n'existe pas encore.
206 * @return true Si tous les éléments ont été ajoutés.
207 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
208 */
209 virtual bool addElementsInRow(const String& row_name, ConstArrayView<Real> elements, bool create_if_not_exist = true) = 0;
210 /**
211 * @brief Méthode permettant d'ajouter plusieurs éléments sur la
212 * ligne dernièrement manipulée.
213 *
214 * Si le nombre d'élements dans 'elements' est plus grand que le
215 * nombre de colonnes disponibles, l'ajout s'effectue quand même (mais les
216 * éléments en trop ne seront pas ajoutés) et on aura un return false.
217 *
218 * Mis à part le fait qu'ici, on manipule un tableau, cette méthode diffère
219 * de 'editElementRight()' car ici, on ajoute des éléments à la fin de la ligne,
220 * pas forcement après le dernier élement ajouté.
221 *
222 * @param elements Le tableau d'élement à ajouter.
223 * @return true Si tous les éléments ont été ajoutés.
224 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
225 */
226 virtual bool addElementsInSameRow(ConstArrayView<Real> elements) = 0;
227
228 /*---------------------------------------------------------------------------*/
229 /*---------------------------------------------------------------------------*/
230
231 /**
232 * @brief Méthode permettant d'ajouter un élément à une colonne.
233 *
234 * @param position La position de la colonne.
235 * @param element L'élément à ajouter.
236 * @return true Si l'élément a pu être ajouté.
237 * @return false Si l'élément n'a pas pu être ajouté.
238 */
239 virtual bool addElementInColumn(Integer position, Real element) = 0;
240 /**
241 * @brief Méthode permettant l'ajouter un élément sur une colonne.
242 *
243 * @param column_name Le nom de la colonne.
244 * @param element L'élément à ajouter.
245 * @param create_if_not_exist Pour savoir si l'on doit créer la colonne
246 * si elle n'existe pas encore.
247 * @return true Si l'élément a pu être ajouté.
248 * @return false Si l'élément n'a pas pu être ajouté.
249 */
250 virtual bool addElementInColumn(const String& column_name, Real element, bool create_if_not_exist = true) = 0;
251 /**
252 * @brief Méthode permettant d'ajouter un élément sur la colonne
253 * dernièrement manipulée.
254 *
255 * Cette méthode diffère de 'editElementDown()' car ici, on ajoute un élément
256 * à la fin de la colonne, pas forcement après le dernier élement ajouté.
257 *
258 * @param element L'élément à ajouter.
259 * @return true Si l'élément a été ajouté.
260 * @return false Si l'élément n'a pas pu être ajouté.
261 */
263
264 /*---------------------------------------------------------------------------*/
265 /*---------------------------------------------------------------------------*/
266
267 /**
268 * @brief Méthode permettant d'ajouter plusieurs éléments sur une colonne.
269 *
270 * Si le nombre d'élements dans 'elements' est plus grand que le
271 * nombre de lignes disponibles, l'ajout s'effectue quand même (mais les
272 * éléments en trop ne seront pas ajoutés) et on aura un return false.
273 *
274 * @param position La position de la colonne.
275 * @param elements Le tableau d'élement à ajouter.
276 * @return true Si tous les éléments ont été ajoutés.
277 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
278 */
279 virtual bool addElementsInColumn(Integer position, ConstArrayView<Real> elements) = 0;
280 /**
281 * @brief Méthode permettant d'ajouter plusieurs éléments sur une colonne.
282 *
283 * Si le nombre d'élements dans 'elements' est plus grand que le
284 * nombre de lignes disponibles, l'ajout s'effectue quand même (mais les
285 * éléments en trop ne seront pas ajoutés) et on aura un return false.
286 *
287 * @param column_name Le nom de la colonne.
288 * @param elements Le tableau d'élement à ajouter.
289 * @param create_if_not_exist Pour savoir si l'on doit créer la colonne si
290 * elle n'existe pas encore.
291 * @return true Si tous les éléments ont été ajoutés.
292 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
293 */
294 virtual bool addElementsInColumn(const String& column_name, ConstArrayView<Real> elements, bool create_if_not_exist = true) = 0;
295 /**
296 * @brief Méthode permettant d'ajouter plusieurs éléments sur la
297 * colonne dernièrement manipulée.
298 *
299 * Si le nombre d'élements dans 'elements' est plus grand que le
300 * nombre de lignes disponibles, l'ajout s'effectue quand même (mais les
301 * éléments en trop ne seront pas ajoutés) et on aura un return false.
302 *
303 * Mis à part le fait qu'ici, on manipule un tableau, cette méthode diffère
304 * de 'editElementDown()' car ici, on ajoute des éléments à la fin de la colonne,
305 * pas forcement après le dernier élement ajouté.
306 *
307 * @param elements Le tableau d'élement à ajouter.
308 * @return true Si tous les éléments ont été ajoutés.
309 * @return false Si [0;len(elements)[ éléments ont été ajoutés.
310 */
312
313 /*---------------------------------------------------------------------------*/
314 /*---------------------------------------------------------------------------*/
315
316 /**
317 * @brief Méthode permettant d'éditer un élément au-dessus du dernier
318 * élement dernièrement manipulé (ligne du dessus/même colonne).
319 *
320 * L'élement que l'on modifie devient donc le dernier élement modifié
321 * à la fin de cette méthode (si update_last_position = true).
322 *
323 * @param element L'élement à modifier.
324 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
325 * @return true Si l'élément a été modifié.
326 * @return false Si l'élément n'a pas pu être modifié.
327 */
328 virtual bool editElementUp(Real element, bool update_last_position = true) = 0;
329 /**
330 * @brief Méthode permettant d'éditer un élément en-dessous du dernier
331 * élement dernièrement manipulé (ligne du dessous/même colonne).
332 *
333 * L'élement que l'on modifie devient donc le dernier élement modifié
334 * à la fin de cette méthode (si update_last_position = true).
335 *
336 * Cette méthode diffère de 'addElementInSameColumn()' car ici, on ajoute
337 * (ou modifie) un élement sous le dernier élement manipulé, qui n'est
338 * pas forcement à la fin de la colonne.
339 *
340 * @param element L'élement à modifier.
341 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
342 * @return true Si l'élément a été modifié.
343 * @return false Si l'élément n'a pas pu être modifié.
344 */
345 virtual bool editElementDown(Real element, bool update_last_position = true) = 0;
346 /**
347 * @brief Méthode permettant d'éditer un élément à gauche du dernier
348 * élement dernièrement manipulé (même ligne/colonne à gauche).
349 *
350 * L'élement que l'on modifie devient donc le dernier élement modifié
351 * à la fin de cette méthode (si update_last_position = true).
352 *
353 * @param element L'élement à modifier.
354 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
355 * @return true Si l'élément a été modifié.
356 * @return false Si l'élément n'a pas pu être modifié.
357 */
358 virtual bool editElementLeft(Real element, bool update_last_position = true) = 0;
359 /**
360 * @brief Méthode permettant d'éditer un élément à droite du dernier
361 * élement dernièrement manipulé (même ligne/colonne à droite).
362 *
363 * L'élement que l'on modifie devient donc le dernier élement modifié
364 * à la fin de cette méthode (si update_last_position = true).
365 *
366 * Cette méthode diffère de 'addElementInSameRow()' car ici, on ajoute
367 * (ou modifie) un élement à la droite du dernier élement manipulé,
368 * qui n'est pas forcement à la fin de la colonne.
369 *
370 * @param element L'élement à modifier.
371 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
372 * @return true Si l'élément a été modifié.
373 * @return false Si l'élément n'a pas pu être modifié.
374 */
375 virtual bool editElementRight(Real element, bool update_last_position = true) = 0;
376
377 /*---------------------------------------------------------------------------*/
378 /*---------------------------------------------------------------------------*/
379
380 /**
381 * @brief Méthode permettant de récupérer un élément au-dessus du dernier
382 * élement dernièrement manipulé (ligne du dessus/même colonne).
383 *
384 * L'élement que l'on récupère devient donc le dernier élement "modifié"
385 * à la fin de cette méthode (si update_last_position = true).
386 *
387 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
388 * @return Real L'élement trouvé (0 si non trouvé).
389 */
390 virtual Real elementUp(bool update_last_position = false) = 0;
391 /**
392 * @brief Méthode permettant de récupérer un élément en-dessous du dernier
393 * élement dernièrement manipulé (ligne du dessous/même colonne).
394 *
395 * L'élement que l'on récupère devient donc le dernier élement "modifié"
396 * à la fin de cette méthode (si update_last_position = true).
397 *
398 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
399 * @return Real L'élement trouvé (0 si non trouvé).
400 */
401 virtual Real elementDown(bool update_last_position = false) = 0;
402 /**
403 * @brief Méthode permettant de récupérer un élément à gauche du dernier
404 * élement dernièrement manipulé (même ligne/colonne à gauche).
405 *
406 * L'élement que l'on récupère devient donc le dernier élement "modifié"
407 * à la fin de cette méthode (si update_last_position = true).
408 *
409 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
410 * @return Real L'élement trouvé (0 si non trouvé).
411 */
412 virtual Real elementLeft(bool update_last_position = false) = 0;
413 /**
414 * @brief Méthode permettant de récupérer un élément à droite du dernier
415 * élement dernièrement manipulé (même ligne/colonne à droite).
416 *
417 * L'élement que l'on récupère devient donc le dernier élement "modifié"
418 * à la fin de cette méthode (si update_last_position = true).
419 *
420 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
421 * @return Real L'élement trouvé (0 si non trouvé).
422 */
423 virtual Real elementRight(bool update_last_position = false) = 0;
424
425 /*---------------------------------------------------------------------------*/
426 /*---------------------------------------------------------------------------*/
427
428 /**
429 * @brief Méthode permettant de modifier un élement dans le tableau.
430 *
431 * Les positions x et y correspondent à l'emplacement du dernier
432 * élement manipulé.
433 *
434 * Cette méthode a de l'intéret après l'utilisation de
435 * 'elemUDLR(true)' par exemple.
436 *
437 * @param element L'élement remplaçant.
438 * @return true Si l'élement a bien été remplacé.
439 * @return false Si l'élement n'a pas été remplacé.
440 */
441 virtual bool editElement(Real element) = 0;
442 /**
443 * @brief Méthode permettant de modifier un élement dans le tableau.
444 *
445 * @param position_x La position de la colonne à modifier.
446 * @param position_y La position de la ligne à modifier.
447 * @param element L'élement remplaçant.
448 * @return true Si l'élement a bien été remplacé.
449 * @return false Si l'élement n'a pas été remplacé.
450 */
451 virtual bool editElement(Integer position_x, Integer position_y, Real element) = 0;
452 /**
453 * @brief Méthode permettant de modifier un élement dans le tableau.
454 *
455 * @param column_name Le nom de la colonne où se trouve l'élement.
456 * @param row_name Le nom de la ligne où se trouve l'élement.
457 * @param element L'élement remplaçant.
458 * @return true Si l'élement a bien été remplacé.
459 * @return false Si l'élement n'a pas pu être remplacé.
460 */
461 virtual bool editElement(const String& column_name, const String& row_name, Real element) = 0;
462
463 /*---------------------------------------------------------------------------*/
464 /*---------------------------------------------------------------------------*/
465
466 /**
467 * @brief Méthode permettant d'obtenir une copie d'un élement.
468 *
469 * Les positions x et y correspondent à l'emplacement du dernier élement manipulé.
470 *
471 * @return Real L'élement trouvé (0 si non trouvé).
472 */
473 virtual Real element() = 0;
474 /**
475 * @brief Méthode permettant d'obtenir une copie d'un élement.
476 *
477 * @param position_x La position de la colonne où se trouve l'élement.
478 * @param position_y La position de la ligne où se trouve l'élement.
479 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
480 * @return Real L'élement trouvé (0 si non trouvé).
481 */
482 virtual Real element(Integer position_x, Integer position_y, bool update_last_position = false) = 0;
483 /**
484 * @brief Méthode permettant d'obtenir une copie d'un élement.
485 *
486 * @param column_name Le nom de la colonne où se trouve l'élement.
487 * @param row_name Le nom de la ligne où se trouve l'élement.
488 * @param update_last_position Doit-on déplacer le curseur "dernier élement modifié" ?
489 * @return Real L'élement trouvé (0 si non trouvé).
490 */
491 virtual Real element(const String& column_name, const String& row_name, bool update_last_position = false) = 0;
492
493 /*---------------------------------------------------------------------------*/
494 /*---------------------------------------------------------------------------*/
495
496 /**
497 * @brief Méthode permettant d'obtenir une copie d'une ligne.
498 *
499 * @param position La position de la ligne.
500 * @return RealUniqueArray La copie de la ligne (tableau vide si non trouvée).
501 */
502 virtual RealUniqueArray row(Integer position) = 0;
503 /**
504 * @brief Méthode permettant d'obtenir une copie d'une ligne.
505 *
506 * @param row_name Le nom de la ligne.
507 * @return RealUniqueArray La copie de la ligne (tableau vide si non trouvée).
508 */
509 virtual RealUniqueArray row(const String& row_name) = 0;
510
511 /**
512 * @brief Méthode permettant d'obtenir une copie d'une colonne.
513 *
514 * @param position La position de la colonne.
515 * @return RealUniqueArray La copie de la colonne (tableau vide si non trouvée).
516 */
517 virtual RealUniqueArray column(Integer position) = 0;
518 /**
519 * @brief Méthode permettant d'obtenir une copie d'une colonne.
520 *
521 * @param column_name Le nom de la colonne.
522 * @return RealUniqueArray La copie de la colonne (tableau vide si non trouvée).
523 */
524 virtual RealUniqueArray column(const String& column_name) = 0;
525
526 /*---------------------------------------------------------------------------*/
527 /*---------------------------------------------------------------------------*/
528
529 /**
530 * @brief Méthode permettant d'obtenir la taille d'une ligne.
531 * Incluant les hypothétiques 'trous' dans la ligne.
532 *
533 * @param position La position de la ligne.
534 * @return Integer La taille de la ligne (0 si non trouvée).
535 */
536 virtual Integer rowSize(Integer position) = 0;
537 /**
538 * @brief Méthode permettant d'obtenir la taille d'une ligne.
539 * Incluant les hypotétiques 'trous' dans la ligne.
540 *
541 * @param position Le nom de la ligne.
542 * @return Integer La taille de la ligne (0 si non trouvée).
543 */
544 virtual Integer rowSize(const String& row_name) = 0;
545
546 /**
547 * @brief Méthode permettant d'obtenir la taille d'une colonne.
548 * Incluant les hypotétiques 'trous' dans la colonne.
549 *
550 * @param position La position de la colonne.
551 * @return Integer La taille de la colonne (0 si non trouvée).
552 */
553 virtual Integer columnSize(Integer position) = 0;
554 /**
555 * @brief Méthode permettant d'obtenir la taille d'une colonne.
556 * Incluant les hypotétiques 'trous' dans la colonne.
557 *
558 * @param position Le nom de la colonne.
559 * @return Integer La taille de la colonne (0 si non trouvée).
560 */
561 virtual Integer columnSize(const String& column_name) = 0;
562
563 /*---------------------------------------------------------------------------*/
564 /*---------------------------------------------------------------------------*/
565
566 /**
567 * @brief Méthode permettant de récupérer la position d'une ligne.
568 *
569 * @param row_name Le nom de la ligne.
570 * @return Integer La position de la ligne (-1 si non trouvée).
571 */
572 virtual Integer rowPosition(const String& row_name) = 0;
573 /**
574 * @brief Méthode permettant de récupérer la position d'une colonne.
575 *
576 * @param row_name Le nom de la colonne.
577 * @return Integer La position de la colonne (-1 si non trouvée).
578 */
579 virtual Integer columnPosition(const String& column_name) = 0;
580
581 /*---------------------------------------------------------------------------*/
582 /*---------------------------------------------------------------------------*/
583
584 /**
585 * @brief Méthode permettant de récupérer le nombre de lignes dans le tableau.
586 * C'est, en quelque sorte, le nombre max d'élements que peut contenir une colonne.
587 *
588 * @return Integer Le nombre de lignes du tableau.
589 */
590 virtual Integer numberOfRows() = 0;
591 /**
592 * @brief Méthode permettant de récupérer le nombre de colonnes dans le tableau.
593 * C'est, en quelque sorte, le nombre max d'élements que peut contenir une ligne.
594 *
595 * @return Integer Le nombre de colonnes du tableau.
596 */
598
599 /*---------------------------------------------------------------------------*/
600 /*---------------------------------------------------------------------------*/
601
602 /**
603 * @brief Méthode permettant de récupérer le nom d'une ligne
604 * à partir de sa position.
605 *
606 * @param position La position de la ligne.
607 * @return String Le nom de la ligne
608 * (chaine vide si la ligne n'a pas été trouvé).
609 */
610 virtual String rowName(Integer position) = 0;
611
612 /**
613 * @brief Méthode permettant de récupérer le nom d'une colonne
614 * à partir de sa position.
615 *
616 * @param position La position de la colonne.
617 * @return String Le nom de la colonne
618 * (chaine vide si la colonne n'a pas été trouvé).
619 */
620 virtual String columnName(Integer position) = 0;
621
622 /*---------------------------------------------------------------------------*/
623 /*---------------------------------------------------------------------------*/
624
625 /**
626 * @brief Méthode permettant de changer le nom d'une ligne.
627 *
628 * @param position La position de la ligne.
629 * @param new_name Le nouveau nom de la ligne. Doit être non vide.
630 * @return true Si le changement a eu lieu.
631 * @return false Si le changement n'a pas eu lieu.
632 */
633 virtual bool editRowName(Integer position, const String& new_name) = 0;
634 /**
635 * @brief Méthode permettant de changer le nom d'une ligne.
636 *
637 * @param row_name Le nom actuel de la ligne.
638 * @param new_name Le nouveau nom de la ligne. Doit être non vide.
639 * @return true Si le changement a eu lieu.
640 * @return false Si le changement n'a pas eu lieu.
641 */
642 virtual bool editRowName(const String& row_name, const String& new_name) = 0;
643
644 /**
645 * @brief Méthode permettant de changer le nom d'une colonne.
646 *
647 * @param position La position de la colonne.
648 * @param new_name Le nouveau nom de la colonne. Doit être non vide.
649 * @return true Si le changement a eu lieu.
650 * @return false Si le changement n'a pas eu lieu.
651 */
652 virtual bool editColumnName(Integer position, const String& new_name) = 0;
653 /**
654 * @brief Méthode permettant de changer le nom d'une colonne.
655 *
656 * @param column_name Le nom actuel de la colonne.
657 * @param new_name Le nouveau nom de la colonne. Doit être non vide.
658 * @return true Si le changement a eu lieu.
659 * @return false Si le changement n'a pas eu lieu.
660 */
661 virtual bool editColumnName(const String& column_name, const String& new_name) = 0;
662
663 /*---------------------------------------------------------------------------*/
664 /*---------------------------------------------------------------------------*/
665
666 /**
667 * @brief Méthode permettant de créer une colonne contenant la moyenne des
668 * éléments de chaque ligne.
669 *
670 * @param column_name Le nom de la nouvelle colonne. Doit être non vide.
671 * @return Integer La position de la colonne.
672 */
673 virtual Integer addAverageColumn(const String& column_name) = 0;
674
675 /**
676 * @brief Méthode permettant de récupérer une référence vers l'objet
677 * SimpleTableInternal utilisé.
678 *
679 * @return Ref<SimpleTableInternal> Une copie de la référence.
680 */
682
683 /**
684 * @brief Méthode permettant de définir une référence vers un
685 * SimpleTableInternal.
686 *
687 * @param simple_table_internal La référence vers un SimpleTableInternal.
688 */
689 virtual void setInternal(const Ref<SimpleTableInternal>& simple_table_internal) = 0;
690};
691
692/*---------------------------------------------------------------------------*/
693/*---------------------------------------------------------------------------*/
694
695} // End namespace Arcane
696
697/*---------------------------------------------------------------------------*/
698/*---------------------------------------------------------------------------*/
699
700#endif
701
702/*---------------------------------------------------------------------------*/
703/*---------------------------------------------------------------------------*/
Déclarations de types sur les entités.
Vue constante d'un tableau de type T.
Interface de classe représentant un gestionnaire de SimpleTableInternal (aka STI).
virtual bool editElementRight(Real element, bool update_last_position=true)=0
Méthode permettant d'éditer un élément à droite du dernier élement dernièrement manipulé (même ligne/...
virtual Integer rowSize(const String &row_name)=0
Méthode permettant d'obtenir la taille d'une ligne. Incluant les hypotétiques 'trous' dans la ligne.
virtual bool addElementsInRow(Integer position, ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter plusieurs éléments sur une ligne.
virtual Integer columnSize(Integer position)=0
Méthode permettant d'obtenir la taille d'une colonne. Incluant les hypotétiques 'trous' dans la colon...
virtual bool editElement(Real element)=0
Méthode permettant de modifier un élement dans le tableau.
virtual RealUniqueArray column(Integer position)=0
Méthode permettant d'obtenir une copie d'une colonne.
virtual bool addColumns(StringConstArrayView columns_names)=0
Méthode permettant d'ajouter plusieurs colonnes.
virtual bool addElementInColumn(const String &column_name, Real element, bool create_if_not_exist=true)=0
Méthode permettant l'ajouter un élément sur une colonne.
virtual Integer addAverageColumn(const String &column_name)=0
Méthode permettant de créer une colonne contenant la moyenne des éléments de chaque ligne.
virtual Integer numberOfRows()=0
Méthode permettant de récupérer le nombre de lignes dans le tableau. C'est, en quelque sorte,...
virtual bool editElement(Integer position_x, Integer position_y, Real element)=0
Méthode permettant de modifier un élement dans le tableau.
virtual bool editElementUp(Real element, bool update_last_position=true)=0
Méthode permettant d'éditer un élément au-dessus du dernier élement dernièrement manipulé (ligne du d...
virtual bool editElementLeft(Real element, bool update_last_position=true)=0
Méthode permettant d'éditer un élément à gauche du dernier élement dernièrement manipulé (même ligne/...
virtual Integer addColumn(const String &column_name)=0
Méthode permettant d'ajouter une colonne.
virtual bool editColumnName(Integer position, const String &new_name)=0
Méthode permettant de changer le nom d'une colonne.
virtual RealUniqueArray row(const String &row_name)=0
Méthode permettant d'obtenir une copie d'une ligne.
virtual bool addElementInRow(Integer position, Real element)=0
Méthode permettant d'ajouter un élément à une ligne.
virtual Integer rowPosition(const String &row_name)=0
Méthode permettant de récupérer la position d'une ligne.
virtual Real element()=0
Méthode permettant d'obtenir une copie d'un élement.
virtual Real elementRight(bool update_last_position=false)=0
Méthode permettant de récupérer un élément à droite du dernier élement dernièrement manipulé (même li...
virtual String columnName(Integer position)=0
Méthode permettant de récupérer le nom d'une colonne à partir de sa position.
virtual Real elementUp(bool update_last_position=false)=0
Méthode permettant de récupérer un élément au-dessus du dernier élement dernièrement manipulé (ligne ...
virtual bool addElementsInRow(const String &row_name, ConstArrayView< Real > elements, bool create_if_not_exist=true)=0
Méthode permettant d'ajouter plusieurs éléments sur une ligne.
virtual bool addElementsInSameRow(ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter plusieurs éléments sur la ligne dernièrement manipulée.
virtual bool editRowName(const String &row_name, const String &new_name)=0
Méthode permettant de changer le nom d'une ligne.
virtual Integer rowSize(Integer position)=0
Méthode permettant d'obtenir la taille d'une ligne. Incluant les hypothétiques 'trous' dans la ligne.
virtual Integer addRow(const String &row_name)=0
Méthode permettant d'ajouter une ligne.
virtual RealUniqueArray row(Integer position)=0
Méthode permettant d'obtenir une copie d'une ligne.
virtual Real elementLeft(bool update_last_position=false)=0
Méthode permettant de récupérer un élément à gauche du dernier élement dernièrement manipulé (même li...
virtual String rowName(Integer position)=0
Méthode permettant de récupérer le nom d'une ligne à partir de sa position.
virtual bool addRows(StringConstArrayView rows_names)=0
Méthode permettant d'ajouter plusieurs lignes.
virtual Integer addRow(const String &row_name, ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter une ligne.
virtual Real elementDown(bool update_last_position=false)=0
Méthode permettant de récupérer un élément en-dessous du dernier élement dernièrement manipulé (ligne...
virtual RealUniqueArray column(const String &column_name)=0
Méthode permettant d'obtenir une copie d'une colonne.
virtual bool addElementInSameColumn(Real element)=0
Méthode permettant d'ajouter un élément sur la colonne dernièrement manipulée.
virtual bool editColumnName(const String &column_name, const String &new_name)=0
Méthode permettant de changer le nom d'une colonne.
virtual void setInternal(const Ref< SimpleTableInternal > &simple_table_internal)=0
Méthode permettant de définir une référence vers un SimpleTableInternal.
virtual bool addElementInSameRow(Real element)=0
Méthode permettant d'ajouter un élément sur la ligne dernièrement manipulée.
virtual Real element(Integer position_x, Integer position_y, bool update_last_position=false)=0
Méthode permettant d'obtenir une copie d'un élement.
virtual Integer numberOfColumns()=0
Méthode permettant de récupérer le nombre de colonnes dans le tableau. C'est, en quelque sorte,...
virtual bool addElementsInSameColumn(ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter plusieurs éléments sur la colonne dernièrement manipulée.
virtual bool editRowName(Integer position, const String &new_name)=0
Méthode permettant de changer le nom d'une ligne.
virtual Ref< SimpleTableInternal > internal()=0
Méthode permettant de récupérer une référence vers l'objet SimpleTableInternal utilisé.
virtual bool editElement(const String &column_name, const String &row_name, Real element)=0
Méthode permettant de modifier un élement dans le tableau.
virtual bool addElementsInColumn(Integer position, ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter plusieurs éléments sur une colonne.
virtual Real element(const String &column_name, const String &row_name, bool update_last_position=false)=0
Méthode permettant d'obtenir une copie d'un élement.
virtual bool editElementDown(Real element, bool update_last_position=true)=0
Méthode permettant d'éditer un élément en-dessous du dernier élement dernièrement manipulé (ligne du ...
virtual Integer columnPosition(const String &column_name)=0
Méthode permettant de récupérer la position d'une colonne.
virtual bool addElementInRow(const String &row_name, Real element, bool create_if_not_exist=true)=0
Méthode permettant l'ajouter un élément sur une ligne.
virtual Integer addColumn(const String &column_name, ConstArrayView< Real > elements)=0
Méthode permettant d'ajouter une colonne.
virtual bool addElementsInColumn(const String &column_name, ConstArrayView< Real > elements, bool create_if_not_exist=true)=0
Méthode permettant d'ajouter plusieurs éléments sur une colonne.
virtual bool addElementInColumn(Integer position, Real element)=0
Méthode permettant d'ajouter un élément à une colonne.
virtual Integer columnSize(const String &column_name)=0
Méthode permettant d'obtenir la taille d'une colonne. Incluant les hypotétiques 'trous' dans la colon...
virtual void clearInternal()=0
Méthode permettant d'effacer le contenu du SimpleTableInternal.
Référence à une instance.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< String > StringConstArrayView
Equivalent C d'un tableau à une dimension de chaînes de caractères.
Definition UtilsTypes.h:579
Int32 Integer
Type représentant un entier.
UniqueArray< Real > RealUniqueArray
Tableau dynamique à une dimension de réels.
Definition UtilsTypes.h:436
double Real
Type représentant un réel.