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