C++ main module for mmsd Package  1.0
UI_Class.h
Go to the documentation of this file.
1 #ifndef UI_Class_H
2 #define UI_Class_H
3 
4 #include "UI_Object.h"
5 #include "CORE_Array2D.h"
7 #include "CORE_ListPointers.h"
8 #include "CORE_Map.h"
9 #include "CORE_Exception.h"
10 
11 #include "CORE_ClassFactory.h"
12 
38 class UI_Class : public virtual CORE_Object {
39  SP_OBJECT(UI_Class);
40  // ATTRIBUTES
41 
44  static const tFlag INTERFACE;
47  static const tFlag BACKUP;
48 
49 
50 private:
51 
52  tBoolean mIsArrayCopied;
53  tBoolean mInterfaceType;
54 
55  // ASSOCIATIONS
56 
57  WP::CORE_ClassFactory mFactory;
58 
59 protected:
60  // METHODS
61 
62  // CONSTRUCTORS
63 
65  UI_Class(void);
66 
67 
68 
69  // DESTRUCTORS
70 
71 
74  virtual ~UI_Class(void);
75 
76 
77 
78 public:
79  //----------------
80  // NEW constructors
81  // ---------------
82 
83 
84 
87  virtual SP::UI_Class NewInstance() const=0;
88 
89 
90 
91 
92  /* \brief set the classes factory
93  */
94  inline void setFactory(SP::CORE_ClassFactory fact) {
95  mFactory=fact;
96  }
97 private:
98  /* \brief get the classes factory
99  */
100  inline SP::CORE_ClassFactory getFactory() const {
101  SP::CORE_ClassFactory f(mFactory.lock());
102  return f;
103  }
104 public:
105  // -----------------------
106  // Data Type verification
107  // -----------------------
108 
111  inline void setInterfaceType(const tFlag& f) {
112  mInterfaceType=f;
113  }
116  inline int getInterfaceType() const {
117  return mInterfaceType;
118  }
121  inline void setIsArrayCopied(const tBoolean& v) {
122  mIsArrayCopied=v;
123  };
124 
127  inline tBoolean isArrayCopied() const {
128  return mIsArrayCopied;
129  }
130 
133  inline void setVersion(const tString& v) {
134  if (v.compare("")!=0) saveField("version",v);
135  };
138  inline tString getVersion() const {
139  tString v="";
140  loadField("version",v);
141  return v;
142  };
143 
144 
145 
146 
147  /*\brief verify the data of the class is boolean
148  * @param isVector is set to truie is the data is a vector, false if it is a scalar
149  */
150  virtual tBoolean isBoolean(tBoolean& isVector) const=0;
151 
152  /*\brief verify the data of the class is char
153  * @param isVector is set to truie is the data is a vector, false if it is a scalar
154  * @param isUnsigned is the data is unsigned
155  */
156  virtual tBoolean isChar(tBoolean& isVector, tBoolean& isUnsigned) const=0;
157 
158  /*\brief verify the data of the class is short int
159  * @param isVector is set to truie is the data is a vector, false if it is a scalar
160  * @param isUnsigned is the data is unsigned
161  */
162  virtual tBoolean isShortInt(tBoolean& isVector, tBoolean& isUnsigned) const=0;
163 
164  /*\brief verify the data of the class is int
165  * @param isVector is set to truie is the data is a vector, false if it is a scalar
166  * @param isUnsigned is the data is unsigned
167  */
168  virtual tBoolean isInt(tBoolean& isVector, tBoolean& isUnsigned) const=0;
169 
170  /*\brief verify the data of the class is long int
171  * @param isVector is set to truie is the data is a vector, false if it is a scalar
172  * @param isUnsigned is the data is unsigned
173  */
174  virtual tBoolean isLongInt(tBoolean& isVector, tBoolean& isUnsigned) const=0;
175 
176  /*\brief verify the data of the class is long int
177  * @param isVector is set to truie is the data is a vector, false if it is a scalar
178  * @param isUnsigned is the data is unsigned
179  */
180  virtual tBoolean isLongLongInt(tBoolean& isVector, tBoolean& isUnsigned) const=0;
181 
182  /*\brief verify the data of the class is an integer vector
183  */
184  virtual tBoolean isInteger(tBoolean& isVector,tBoolean& isUnsigned) const {
185  return (isChar(isVector,isUnsigned) ||
186  isShortInt(isVector,isUnsigned) ||
187  isInt(isVector,isUnsigned) ||
188  isLongInt(isVector,isUnsigned) ||
189  isLongLongInt(isVector,isUnsigned));
190 
191  }
192 
193  /*\brief verify the data of the class is float
194  * @param isVector is set to truie is the data is a vector, false if it is a scalar
195  * @param isUnsigned is the data is unsigned
196  */
197  virtual tBoolean isFloat(tBoolean& isVector) const=0;
198 
199  /*\brief verify the data of the class is double
200  * @param isVector is set to truie is the data is a vector, false if it is a scalar
201  * @param isUnsigned is the data is unsigned
202  */
203  virtual tBoolean isDouble(tBoolean& isVector) const=0;
204 
205  /*\brief verify the data of the class is long double
206  * @param isVector is set to truie is the data is a vector, false if it is a scalar
207  * @param isUnsigned is the data is unsigned
208  */
209  virtual tBoolean isLongDouble(tBoolean& isVector) const=0;
210 
211 
212  /*\brief verify the data of the class is a string
213  */
214  virtual tBoolean isString(tBoolean& isVector) const =0;
215 
216 
217  /*\brief verify that the data class is double full maxtrix
218  */
219  virtual tBoolean isDoubleFullMatrix() const=0;
220 
221 
224  virtual tBoolean isClass() const=0;
227  virtual tBoolean hasField(const tString& field) const=0;
228 
231  virtual tBoolean hasFields(const vector<tString>& fields) const=0;
232 
235  virtual tString getClassName() const=0;
236 
237 
238  // ------------------
239  // Conversion methods
240  // -------------------
241 
242  // ----------
243  // GET SCALAR
244  // ----------
245 
249  virtual tBoolean getString(tString& name) const=0;
250 
254  virtual tBoolean getScalar(tString& name) const {
255  return getString(name);
256  };
257 
261  virtual tBoolean getScalar(tBoolean& value) const=0;
262 
266  virtual tBoolean getScalar(char& value) const=0;
270  virtual tBoolean getScalar(unsigned char& value) const=0;
271 
275  virtual tBoolean getScalar(short int& value) const=0;
279  virtual tBoolean getScalar(int& value) const=0;
280 
284  virtual tBoolean getScalar(long int& value) const=0;
285 
289  virtual tBoolean getScalar(long long int& value) const=0;
290 
294  virtual tBoolean getScalar(unsigned long long int& value) const=0;
295 
296 
300  virtual tBoolean getScalar(double& value) const=0;
301 
305  virtual tBoolean getScalar(long double& value) const=0;
306 
307  // ------------------------
308  // GET Vector of pointers
309  // -------------------------
310 
311 
319  virtual tBoolean getVector(int& n,tString*& value,tBoolean& isCopied) const=0;
320 
328  virtual tBoolean getVector(int& n,bool*& value,tBoolean& isCopied) const=0;
329 
337  virtual tBoolean getVector(int& n,int*& value,tBoolean& isCopied) const=0;
338 
346  virtual tBoolean getVector(int& n,unsigned int*& value,tBoolean& isCopied) const=0;
347 
355  virtual tBoolean getVector(int& n,unsigned long int*& value,tBoolean& isCopied) const=0;
356 
364  virtual tBoolean getVector(int& n,unsigned char*& value,tBoolean& isCopied) const=0;
365 
372  virtual tBoolean getVector(int& n,long int*& value,tBoolean& isCopied) const=0;
373 
380  virtual tBoolean getVector(int& n,long long int*& value,tBoolean& isCopied) const=0;
381 
388  virtual tBoolean getVector(int& n,double*& value,tBoolean& isCopied) const=0;
389 
396  virtual tBoolean getVector(int& n,long double*& value,tBoolean& isCopied) const=0;
397 
398  // ----------
399  // GET Vector
400  // ----------
401 
402 
406  virtual tBoolean getVector(vector<tString>& name) const=0;
407 
411  virtual tBoolean getVector(vector<bool>& value) const {
412  int n;
413  bool *values=null;
414  tBoolean isCopied=false;
415  tBoolean succeeds=getVector(n,values,isCopied);
416  if (succeeds) {
417  value.resize(n);
418  for (int i=0;i<n;i++) value[i]=values[i];
419  if (isCopied) delete[] values;
420  }
421  return succeeds;
422  }
426  virtual tBoolean getVector(vector<unsigned char>& value) const {
427  int n;
428  int *values=null;
429  tBoolean isCopied=false;
430  tBoolean succeeds=getVector(n,values,isCopied);
431  if (succeeds) {
432  value.resize(n);
433  for (int i=0;i<n;i++) value[i]=values[i];
434  if (isCopied) delete[] values;
435  }
436  return succeeds;
437  };
438 
442  virtual tBoolean getVector(vector<int>& value) const {
443  int n;
444  int *values=null;
445  tBoolean isCopied=false;
446  tBoolean succeeds=getVector(n,values,isCopied);
447  if (succeeds) {
448  value.resize(n);
449  for (int i=0;i<n;i++) value[i]=values[i];
450  if (isCopied) delete[] values;
451 
452  }
453  return succeeds;
454  };
455 
459  virtual tBoolean getVector(vector<double>& value) const {
460  int n;
461  double *values=null;
462  tBoolean isCopied=false;
463  tBoolean succeeds=getVector(n,values,isCopied);
464  if (succeeds) {
465  value.resize(n);
466  for (int i=0;i<n;i++) value[i]=values[i];
467  if (isCopied) delete[] values;
468  }
469  return succeeds;
470 
471  };
475  virtual tBoolean getVector(vector<long double>& value) const {
476  int n;
477  long double *values=null;
478  tBoolean isCopied=false;
479  tBoolean succeeds=getVector(n,values,isCopied);
480  if (succeeds) {
481  value.resize(n);
482  for (int i=0;i<n;i++) value[i]=values[i];
483  if (isCopied) delete[] values;
484  }
485  return succeeds;
486 
487  }
488 
489  // ----------
490  // GET MATRIX
491  // -----------
492 
493 
500  virtual tBoolean getFullMatrix(int& nRows,int& nCols,
501  double*& value,
502  tBoolean& isCopied) const=0;
503 
504  /* \brief get the full symmetric matrix stored as a vector of size nRows * nRows
505  * @param nrows: is the number of rows ofthe matrix
506  * the size of the value array is nRows * nRows
507  */
508  tBoolean getFullSymmetricMatrix(int& nRows,double*& value,tBoolean& isCopied) const {
509  tBoolean succeeds=getVector(nRows,value,isCopied);
510  nRows=sqrt(nRows);
511  return succeeds;
512  }
513  /* \brief get the full symmetric matrix stored as a vector of size nRows*(nRows+1)/2
514  * @param nrows: is the number of rows ofthe matrix
515  * the size of the value array is nRows * (nRows+1)/2
516  */
517  tBoolean getPackedSymmetricMatrix(int& nRows,double*& value,tBoolean& isCopied) const {
518  tBoolean succeeds=getVector(nRows,value,isCopied);
519  nRows=(int)(((sqrt(1+8*nRows)-1.)/2.)+0.5);
520  return succeeds;
521  }
524  template<class T>
525  tBoolean getVector2D(CORE_Array2D<T>& array2D,tBoolean& isCopied) const {
526 
527  SP::UI_Class f=NewInstance();
528  //SP::UI_Class f=mField;
529  tBoolean succeeds=true;
530 
531  int *rs=null;
532  int nRows=0;
533  getField("rows",*f.get());
534  succeeds = succeeds && f->getVector(nRows,rs,isCopied);
535 
536  T* vs=null;
537  int n=0;
538  getField("values",*f.get());
539  succeeds = succeeds && f->getVector(n,vs,isCopied);
540 
541  tBoolean toBeDeleted=true;
542  if (!isCopied) {
543  toBeDeleted=false;
544  }
545 
546  array2D.setValues(n,vs,nRows,rs,toBeDeleted);
547 
548  return succeeds;
549  };
550 
551  // ---------
552  // GET LIST
553  // ---------
554 
557  template<class T,class Q>
558  tBoolean getPrimitiveMap(map<T,Q>& primitiveMap) const {
559 
560 
561  vector<T> keys;
562  vector<Q> values;
563  // verify the class is a map one
564  if (!hasField("keys")) return false;
565  if (!hasField("values")) return false;
566 
567  // load the keys & values
568  loadField("keys",keys);
569  loadField("values",values);
570 
571  // set the map
572  primitiveMap.clear();
573  int n=keys.size();
574  int m=values.size();
575  n=(m<n)?m:n;
576  for (int i=0;i<n;i++) {
577  primitiveMap[keys[i]]=values[i];
578  }
579  // return value
580  return true;
581  };
582 
583 
586  template<class T,class Q>
587  tBoolean getPrimitiveMap(CORE_Map<T,Q>& primitiveMap) const {
588  vector<T> keys;
589  vector<Q> values;
590  // verify the class is a map one
591  if (!hasField("keys")) return false;
592  if (!hasField("values")) return false;
593 
594  // load the keys & values
595  loadField("keys",keys);
596  loadField("values",values);
597 
598  // set the map
599  primitiveMap.clear();
600  int n=keys.size();
601  int m=values.size();
602  n=(m<n)?m:n;
603  for (int i=0;i<n;i++) {
604  primitiveMap.put(keys[i],values[i]);
605  }
606  // return value
607  return true;
608  };
609 
610 
611  // ----------------
612  // Scalar Creation method
613  // ----------------
616  virtual void createString(const tString& value)=0;
619  virtual void createScalar(const tString& value) {
620  createString(value);
621  };
624  virtual void createScalar(const unsigned char& value)=0;
627  virtual void createScalar(const unsigned int& value)=0;
630  virtual void createScalar(const short int& value)=0;
633  virtual void createScalar(const int& value)=0;
636  virtual void createScalar(const long int& value)=0;
639  virtual void createScalar(const long long int& value)=0;
642  virtual void createScalar(const unsigned long long int& value)=0;
645  virtual void createScalar(const tBoolean& value)=0;
648  virtual void createScalar(const double& value)=0;
651  virtual void createScalar(const long double& value)=0;
652 
653 
654  // ----------------
655  // Vector Creation method
656  // ----------------
659  virtual double *createDoubleVector(const int& n)=0;
662  virtual int *createIntVector(const int& n)=0;
663 
666  virtual void createVector(const vector<tString>& values)=0;
667 
668 
671  virtual void createVector(const vector<tBoolean>& values)=0;
672 
675  virtual void createVector(const vector<unsigned char>& values)=0;
676 
679  virtual void createVector(const vector<int>& values)=0;
680 
683  virtual void createVector(const vector<double>& values)=0;
684 
687  virtual void createVector(const vector<long double>& values)=0;
688 
692  virtual void createVector(const int& n,const tString*& values,const tBoolean& isCopied)=0;
696  virtual void createVector(const int& n,const tBoolean*& values,const tBoolean& isCopied)=0;
697 
701  virtual void createVector(const int& n,const int*& values,const tBoolean& isCopied)=0;
702 
706  virtual void createVector(const int& n,const unsigned char*& values,const tBoolean& isCopied)=0;
707 
711  virtual void createVector(const int& n,const long int*& values,const tBoolean& isCopied)=0;
715  virtual void createVector(const int& n,const long long int*& values,const tBoolean& isCopied)=0;
719  virtual void createVector(const int& n,const double*& values,const tBoolean& isCopied)=0;
723  virtual void createVector(const int& n,const long double*& values,const tBoolean& isCopied)=0;
724 
728  virtual void createVector(const int& n,const tBoolean* values) {
729  tBoolean isCopied=mIsArrayCopied;
730  createVector(n,values,isCopied);
731  };
732 
736  virtual void createVector(const int& n,const int* values){
737  tBoolean isCopied=mIsArrayCopied;
738  createVector(n,values,isCopied);
739  };
740 
744  virtual void createVector(const int& n,const long int* values){
745  tBoolean isCopied=mIsArrayCopied;
746  createVector(n,values,isCopied);
747  };
751  virtual void createVector(const int& n,const double* values){
752  tBoolean isCopied=mIsArrayCopied;
753  createVector(n,values,isCopied);
754  };
758  virtual void createVector(const int& n,const long double* values){
759  tBoolean isCopied=mIsArrayCopied;
760  createVector(n,values,isCopied);
761  };
762 
763  // ---------------
764  // MATRIX creation
765  // -----------------
766 
770  virtual void createFullMatrix(const int& nRows,const int& nCols,const double* values,tBoolean& isCopied)=0;
774  virtual void createFullMatrix(const int& nRows,const int& nCols,const double* values) {
775  tBoolean isCopied=true;
776  createFullMatrix(nRows,nCols,values,isCopied);
777  }
781  virtual double *createFullMatrix(const int& nRows,const int& nCols)=0;
782 
786  virtual void createFullSymmetricMatrix(const int& nRows,const double* values,const tBoolean& isCopied) {
787  int n=nRows*nRows;
788  createVector(n,values,isCopied);
789  }
794  virtual void createFullSymmetricMatrix(const int& nRows,const double* values) {
795  tBoolean isCopied=mIsArrayCopied;
796  createFullSymmetricMatrix(nRows,values,isCopied);
797  }
798 
799 
803  virtual void createPackedSymmetricMatrix(const int& nRows,const double* values,const tBoolean& isCopied) {
804  int n=nRows*(nRows+1)/2;
805  createVector(n,values,isCopied);
806  };
810  virtual void createPackedSymmetricMatrix(const int& nRows,const double* values) {
811  tBoolean isCopied=mIsArrayCopied;
812  createPackedSymmetricMatrix(nRows,values,isCopied);
813  };
814 
815 
816 
817  template<class T>
818  void createVector2D(const CORE_Array2D<T>& array2D,const tBoolean& isCopied) {
819  // create the class
820  createClass(array2D.getClassName());
821  saveField("values",array2D.getValuesNumber(),array2D.getValues(),isCopied);
822  saveField("rows",array2D.getRowsNumber()+1,array2D.getRowIndices(),isCopied);
823  };
824  template<class T>
825  void createVector2D(const CORE_Array2D<T>& array2D) {
826  tBoolean isCopied=mIsArrayCopied;
827  createVector2D(array2D,isCopied);
828  };
829 
830 
831  // --------------
832  // List creation
833  // ---------------
834 
835  template<class T,class Q>
836  void createPrimitiveMap(const map<T,Q>& primitiveMap) {
837 
838  // fill the struture
839  typename::map<T,Q>::const_iterator iter=primitiveMap.begin();
840 
841  // get the keys & values
842  vector<T> keys;
843  vector<Q> values;
844  while (iter!=primitiveMap.end()) {
845  keys.push_back(iter->first);
846  values.push_back(iter->second);
847  iter++;
848  }
849 
850 
851  // save it in class
852  createClass("map");
853  saveField("keys",keys);
854  saveField("values",values);
855 
856 
857  };
858 
859  template<class T,class Q>
860  void createPrimitiveMap(const CORE_Map<T,Q>& primitiveMap) {
861  // get the keys
862  vector<T> keys;
863  vector<Q> values;
864  primitiveMap.getKeys(keys);
865  primitiveMap.getValues(values);
866 
867  // create the class with fields
868  createClass(primitiveMap.getIdentityString());
869  saveField("keys",keys);
870  saveField("values",values);
871  };
872 
873 
874  // ------------------------
875  // Class creation
876  // ----------------------
877 
878 
881  inline void saveClass(const UI_Object& obj) {
882  SP::CORE_ClassFactory factory=getFactory();
883  if (factory.get()==null) {
884  factory=CORE_ClassFactory::New();
885  setFactory(factory);
886  }
888  factory->addClass(obj.getIdentityString(),getThis());
889  obj.saveToUIClass(*this);
890  finalize();
891  }
894  virtual void createClass(const tString& id)=0;
895 
899 
900 
903  virtual void createClassesList(const tString& fieldName,const tBoolean& isComposite,const int& n)=0;
904 
907  virtual tBoolean setClassIntoList(const tString& fieldName,const int& index,UI_Class& fieldValue)=0;
908 
909 
912  virtual tBoolean setField(const tString& fieldName,const tBoolean& isComposite,UI_Class& fieldValue)=0;
915  virtual tBoolean setField(const tString& fieldName,UI_Class& fieldValue) {
916  tBoolean isCopied=mIsArrayCopied;
917  return setField(fieldName,isCopied,fieldValue);
918  };
919 
920 
921 
922  // -----------------------
923  // Get Class Field
924  // -----------------------
925 
930  virtual tBoolean getClassFromList(const tString& fieldName,const int& index,UI_Class& uiClass) const=0;
931 
937  virtual tBoolean getField(const tString& field,UI_Class& uiClass) const=0;
938 
939 
940 
943  virtual int getClassesListSize(const tString& fieldName) const=0;
944 
947  virtual void getFieldNames(vector<tString>& name) const=0;
948 
949 
950 
951 
952  // -------------
953  // print methods
954  // -------------
955 
958  virtual void printErrorMessage(const tString& msg) const=0;
959 
962  virtual void printMessage(const tString& msg) const=0;
963 
964  // -----------------------
965  // class loader attributes
966  // -----------------------
967 
968 
969  // ---------------------------------------------
970  // load field (const tString& name, T& v) const
971  // ---------------------------------------------
972 
973  inline tBoolean loadField(const tString& name,tString& v) const {
974  SP::UI_Class f=NewInstance();
975  //SP::UI_Class f=mField;
976  if (getField(name,*f.get())) {
977  return f->getScalar(v);
978  };
979  return false;
980  };
981  inline tBoolean loadField(const tString& name,bool & v) const {
982  SP::UI_Class f=NewInstance();
983  //SP::UI_Class f=mField;
984  if (getField(name,*f.get())) {
985  return f->getScalar(v);
986  };
987  return false;
988  };
989  inline tBoolean loadField(const tString& name,unsigned char & v) const {
990 
991  SP::UI_Class f=NewInstance();
992  //SP::UI_Class f=mField;
993  if (getField(name,*f.get())) {
994  return f->getScalar(v);
995  };
996  return false;
997  };
998  inline tBoolean loadField(const tString& name,char & v) const {
999 
1000  SP::UI_Class f=NewInstance();
1001  //SP::UI_Class f=mField;
1002  if (getField(name,*f.get())) {
1003  return f->getScalar(v);
1004  };
1005  return false;
1006  };
1007  inline tBoolean loadField(const tString& name,short & v) const {
1008  v=0;
1009  SP::UI_Class f=NewInstance();
1010  if (getField(name,*f.get())) {
1011  return f->getScalar(v);
1012  };
1013  return false;
1014  };
1015  inline tBoolean loadField(const tString& name,int & v) const {
1016 
1017  SP::UI_Class f=NewInstance();
1018  //SP::UI_Class f=mField;
1019  if (getField(name,*f.get())) {
1020  return f->getScalar(v);
1021  };
1022  return false;
1023  };
1024  inline tBoolean loadField(const tString& name,long int & v) const {
1025  v=0;
1026  SP::UI_Class f=NewInstance();
1027  //SP::UI_Class f=mField;
1028  if (getField(name,*f.get())) {
1029  return f->getScalar(v);
1030  };
1031  return false;
1032  };
1033  inline tBoolean loadField(const tString& name,long long int & v) const {
1034  v=0;
1035  SP::UI_Class f=NewInstance();
1036  //SP::UI_Class f=mField;
1037  if (getField(name,*f.get())) {
1038  return f->getScalar(v);
1039  };
1040  return false;
1041  };
1042  inline tBoolean loadField(const tString& name,unsigned long long int & v) const {
1043  v=0;
1044  SP::UI_Class f=NewInstance();
1045  //SP::UI_Class f=mField;
1046  if (getField(name,*f.get())) {
1047  return f->getScalar(v);
1048  };
1049  return false;
1050  };
1051 
1052  inline tBoolean loadField(const tString& name,double & v) const {
1053 
1054  SP::UI_Class f=NewInstance();
1055  //SP::UI_Class f=mField;
1056  if (getField(name,*f.get())) {
1057  return f->getScalar(v);
1058  };
1059  return false;
1060  };
1061  inline tBoolean loadField(const tString& name,long double & v) const {
1062 
1063  SP::UI_Class f=NewInstance();
1064  //SP::UI_Class f=mField;
1065  if (getField(name,*f.get())) {
1066  return f->getScalar(v);
1067  };
1068  return false;
1069  };
1070 
1071 
1072  // --------------------------------------------------------
1073  // load field (const tString& name, vector<T>& v) const
1074  // ----------------------------------------------------------
1075  inline tBoolean loadField(const tString& name,vector<tString>& v) const {
1076 
1077  SP::UI_Class f=NewInstance();
1078  //SP::UI_Class f=mField;
1079  if (getField(name,*f.get())) {
1080  return f->getVector(v);
1081  };
1082  return false;
1083  };
1084  inline tBoolean loadField(const tString& name,vector<tBoolean>& v) const {
1085 
1086  SP::UI_Class f=NewInstance();
1087  //SP::UI_Class f=mField;
1088  if (getField(name,*f.get())) {
1089  return f->getVector(v);
1090  };
1091  return false;
1092  };
1093  inline tBoolean loadField(const tString& name,vector<unsigned char>& v) const {
1094 
1095  SP::UI_Class f=NewInstance();
1096  //SP::UI_Class f=mField;
1097  if (getField(name,*f.get())) {
1098  return f->getVector(v);
1099  };
1100  return false;
1101  };
1102  inline tBoolean loadField(const tString& name,vector<int>& v) const {
1103 
1104  SP::UI_Class f=NewInstance();
1105  //SP::UI_Class f=mField;
1106  if (getField(name,*f.get())) {
1107  return f->getVector(v);
1108  };
1109  return false;
1110  };
1111  inline tBoolean loadField(const tString& name,vector<double>& v) const {
1112 
1113  SP::UI_Class f=NewInstance();
1114  //SP::UI_Class f=mField;
1115  if (getField(name,*f.get())) {
1116  return f->getVector(v);
1117  };
1118  return false;
1119  };
1120  inline tBoolean loadField(const tString& name,vector<long double>& v) const {
1121 
1122  SP::UI_Class f=NewInstance();
1123  //SP::UI_Class f=mField;
1124  if (getField(name,*f.get())) {
1125  return f->getVector(v);
1126  };
1127  return false;
1128  };
1129 
1130  template<class T>
1131  inline tBoolean loadField(const tString& name,
1132  CORE_Array<T>& v) const {
1133  tBoolean isCopied=mIsArrayCopied;
1134  return loadField(name,v,isCopied);
1135 
1136  };
1137 
1138  template<class T>
1139  inline tBoolean loadField(const tString& name,
1140  CORE_Array<T>& v,
1141  tBoolean& isCopied) const {
1142  int n=0;
1143  T* vs=null;
1144  tBoolean isArrayCopied=false;
1145  tBoolean succeeds=loadField(name,n,vs,isArrayCopied);
1146  if (succeeds) {
1147  if (isCopied || isArrayCopied) {
1148  v.setValues(n,vs);
1149  } else {
1150  v.setValuesByReference(n,vs,false);
1151  }
1152  }
1153  return succeeds;
1154  };
1155 
1156  template<class T>
1157  inline tBoolean loadField(const tString& name,CORE_Array2D<T>& array2D,tBoolean& isCopied) const {
1158  SP::UI_Class f=NewInstance();
1159  //SP::UI_Class f=mField;
1160  if (getField(name,*f.get())) {
1161  return f->getVector2D(array2D,isCopied);
1162  }
1163  return false;
1164  };
1165  template<class T>
1166  inline tBoolean loadField(const tString& name,CORE_Array2D<T>& array2D) const {
1167  tBoolean isCopied=mIsArrayCopied;
1168  return loadField(name,array2D,isCopied);
1169  };
1170 
1171  template<class T>
1172  inline tBoolean loadField(const tString& name,CORE_Vector<T>& v) const {
1173  vector<T> &vs=v.getValues();
1174  tBoolean succeeds=loadField(name,vs);
1175 
1176  return succeeds;
1177  };
1178 
1179  // --------------------------------------------------------------------
1180  // load field (const tString& name, int& n, T*& v, tBoolean& isCopied)
1181  // --------------------------------------------------------------------
1182 
1183  inline tBoolean loadField(const tString& name,int& n,tString *&v,tBoolean& isCopied) const {
1184  SP::UI_Class f=NewInstance();
1185  n=0;
1186  if (getField(name,*f.get())) {
1187  return f->getVector(n,v,isCopied);
1188  };
1189  return false;
1190  };
1191  inline tBoolean loadField(const tString& name,int& n,tBoolean *&v,tBoolean& isCopied) const {
1192  SP::UI_Class f=NewInstance();
1193  n=0;
1194  if (getField(name,*f.get())) {
1195  return f->getVector(n,v,isCopied);
1196  };
1197  return false;
1198  };
1199  inline tBoolean loadField(const tString& name,int& n,unsigned char *&v,tBoolean& isCopied) const {
1200  SP::UI_Class f=NewInstance();
1201  //SP::UI_Class f=mField;
1202  n=0;
1203  if (getField(name,*f.get())) {
1204  return f->getVector(n,v,isCopied);
1205  }
1206  return false;
1207  };
1208  inline tBoolean loadField(const tString& name,int& n,int *&v,tBoolean& isCopied) const {
1209  SP::UI_Class f=NewInstance();
1210  //SP::UI_Class f=mField;
1211  n=0;
1212  if (getField(name,*f.get())) {
1213  return f->getVector(n,v,isCopied);
1214  }
1215  return false;
1216  };
1217 
1218  inline tBoolean loadField(const tString& name,int& n,unsigned long int *&v,tBoolean& isCopied) const {
1219  SP::UI_Class f=NewInstance();
1220  //SP::UI_Class f=mField;
1221  n=0;
1222  if (getField(name,*f.get())) {
1223  return f->getVector(n,v,isCopied);
1224  };
1225  return false;
1226  };
1227  inline tBoolean loadField(const tString& name,int& n,double *&v,tBoolean& isCopied) const {
1228  SP::UI_Class f=NewInstance();
1229  //SP::UI_Class f=mField;
1230  n=0;
1231  if (getField(name,*f.get())) {
1232  return f->getVector(n,v,isCopied);
1233 
1234  };
1235  return false;
1236  };
1237  inline tBoolean loadField(const tString& name,int& n,long double *&v,tBoolean& isCopied) const {
1238  SP::UI_Class f=NewInstance();
1239  //SP::UI_Class f=mField;
1240  n=0;
1241  if (getField(name,*f.get())) {
1242  return f->getVector(n,v,isCopied);
1243 
1244  };
1245  return false;
1246  };
1247 
1248  // ---------------------------------------------------
1249  // load field (const tString& name, int& n, T*& v)
1250  // ----------------------------------------------------
1251 
1252  inline tBoolean loadField(const tString& name,int& n,long double *&v) const {
1253  tBoolean isCopied=mIsArrayCopied;
1254  return loadField(name,n,v,isCopied);
1255  };
1256  inline tBoolean loadField(const tString& name,int& n,double *&v) const {
1257  tBoolean isCopied=mIsArrayCopied;
1258  return loadField(name,n,v,isCopied);
1259  };
1260  inline tBoolean loadField(const tString& name,int& n,tString *&v) const {
1261  tBoolean isCopied=mIsArrayCopied;
1262  return loadField(name,n,v,isCopied);
1263  };
1264  inline tBoolean loadField(const tString& name,int& n,int *&v) const {
1265  tBoolean isCopied=mIsArrayCopied;
1266  return loadField(name,n,v,isCopied);
1267  };
1268 
1269  // ---------------------------------------------------
1270  // load field (const tString& name, int& n, T*& v)
1271  // ----------------------------------------------------
1272 
1273  inline tBoolean loadField(const tString& name,const int& n,long double v[]) const {
1274  tBoolean isCopied=false;
1275  int ns=n;
1276  long double *vs;
1277  tBoolean succeeds=loadField(name,ns,vs,isCopied);
1278  for (int i=0;i<n;i++) {
1279  v[i]=vs[i];
1280  }
1281  if (isCopied) delete[] vs;
1282  return succeeds;
1283  };
1284  inline tBoolean loadField(const tString& name,const int& n,double v[]) const {
1285  tBoolean isCopied=false;
1286  int ns=n;
1287  double *vs;
1288  tBoolean succeeds=loadField(name,ns,vs,isCopied);
1289  for (int i=0;i<n;i++) {
1290  v[i]=vs[i];
1291  }
1292  if (isCopied) delete[] vs;
1293  return succeeds;
1294  };
1295  inline tBoolean loadField(const tString& name,const int& n,int v[]) const {
1296  tBoolean isCopied=false;
1297  int ns=n;
1298  int *vs;
1299  tBoolean succeeds=loadField(name,ns,vs,isCopied);
1300  for (int i=0;i<n;i++) {
1301  v[i]=vs[i];
1302  }
1303  if (isCopied) delete[] vs;
1304  return succeeds;
1305  };
1306 
1307  // ---------------------------------------------------
1308  // load field (const tString& name, int& n, map or list & v)
1309  // ----------------------------------------------------
1310  template<class T,class Q>
1311  inline tBoolean loadField(const tString& name,map<T,Q>& primitiveMap) const {
1312  SP::UI_Class f=NewInstance();
1313  //SP::UI_Class f=mField;
1314  if (getField(name,*f.get())) {
1315  return f->getPrimitiveMap(primitiveMap);
1316  }
1317  return false;
1318  };
1319  template<class T,class Q>
1320  inline tBoolean loadField(const tString& name,CORE_Map<T,Q>& primitiveMap) const {
1321  primitiveMap.clear();
1322  SP::UI_Class f=NewInstance();
1323  //SP::UI_Class f=mField;
1324  if (getField(name,*f.get())) {
1325  return f->getPrimitiveMap(primitiveMap);
1326  }
1327  return false;
1328  };
1329  // ---------------------------------------------------
1330  // load matrix field
1331  // ----------------------------------------------------
1332  inline tBoolean loadFullMatrixField(const tString& name,int& nRows,int& nCols,double*& values,tBoolean& isCopied) const {
1333  SP::UI_Class f=NewInstance();
1334  //SP::UI_Class f=mField;
1335  nCols=0;nRows=0;
1336  if (getField(name,*f.get())) {
1337  return f->getFullMatrix(nRows,nCols,values,isCopied);
1338  }
1339  return false;
1340  }
1341  inline tBoolean loadFullMatrixField(const tString& name,int& nRows,int& nCols,double*& values) const {
1342  tBoolean isCopied=mIsArrayCopied;
1343  return loadFullMatrixField(name,nRows,nCols,values,isCopied);
1344  }
1345  inline tBoolean loadFullSymmetricMatrixField(const tString& name,int& nRows,double*& values,tBoolean& isCopied) const {
1346  SP::UI_Class f=NewInstance();
1347  //SP::UI_Class f=mField;
1348  nRows=0;
1349  if (getField(name,*f.get())) {
1350  return f->getFullSymmetricMatrix(nRows,values,isCopied);
1351  }
1352  return false;
1353  }
1354  inline tBoolean loadFullSymmetricMatrixField(const tString& name,int& nRows,double*& values) const {
1355  tBoolean isCopied=mIsArrayCopied;
1356  return loadFullSymmetricMatrixField(name,nRows,values,isCopied);
1357  }
1358  inline tBoolean loadPackedSymmetricMatrixField(const tString& name,int& nRows,double*& values,tBoolean& isCopied) const {
1359  SP::UI_Class f=NewInstance();
1360  //SP::UI_Class f=mField;
1361  nRows=0;
1362  if (getField(name,*f.get())) {
1363  return f->getPackedSymmetricMatrix(nRows,values,isCopied);
1364  }
1365  return false;
1366  }
1367  inline tBoolean loadPackedSymmetricMatrixField(const tString& name,int& nRows,double*& values) const {
1368  tBoolean isCopied=mIsArrayCopied;
1369  return loadPackedSymmetricMatrixField(name,nRows,values,isCopied);
1370  }
1371  // -----------------------
1372  // class saver attributes
1373  // -----------------------
1374 
1375  // ---------------------------------------------
1376  // save field (const tString& name, const T& v)
1377  // ----------------------------------------------
1378 
1379  inline tBoolean saveField(const tString& name,const tString & v) {
1380  SP::UI_Class f=NewInstance();
1381  //SP::UI_Class f=mField;
1382  f->createScalar(v);
1383  setField(name,*f.get());
1384  return true;
1385  };
1386 
1387  inline tBoolean saveField(const tString& name,const tBoolean & v) {
1388  SP::UI_Class f=NewInstance();
1389  //SP::UI_Class f=mField;
1390  f->createScalar(v);
1391  setField(name,*f.get());
1392  return true;
1393  };
1394 
1395  inline tBoolean saveField(const tString& name,const char & v) {
1396  SP::UI_Class f=NewInstance();
1397  //SP::UI_Class f=mField;
1398  f->createScalar(v);
1399  setField(name,*f.get());
1400  return true;
1401  };
1402  inline tBoolean saveField(const tString& name,const unsigned char & v) {
1403  SP::UI_Class f=NewInstance();
1404  //SP::UI_Class f=mField;
1405  f->createScalar(v);
1406  setField(name,*f.get());
1407  return true;
1408  };
1409  inline tBoolean saveField(const tString& name,const short int & v) {
1410  SP::UI_Class f=NewInstance();
1411  //SP::UI_Class f=mField;
1412  f->createScalar(v);
1413  setField(name,*f.get());
1414  return true;
1415  };
1416  inline tBoolean saveField(const tString& name,const int & v) {
1417 
1418  SP::UI_Class f=NewInstance();
1419  //SP::UI_Class f=mField;
1420  f->createScalar(v);
1421  setField(name,*f.get());
1422  return true;
1423  };
1424  inline tBoolean saveField(const tString& name,const long int & v) {
1425  SP::UI_Class f=NewInstance();
1426  //SP::UI_Class f=mField;
1427  f->createScalar(v);
1428  setField(name,*f.get());
1429  return true;
1430  };
1431  inline tBoolean saveField(const tString& name,const long long int & v) {
1432  SP::UI_Class f=NewInstance();
1433  //SP::UI_Class f=mField;
1434  f->createScalar(v);
1435  setField(name,*f.get());
1436  return true;
1437  };
1438  inline tBoolean saveField(const tString& name,const unsigned long long int & v) {
1439  SP::UI_Class f=NewInstance();
1440  //SP::UI_Class f=mField;
1441  f->createScalar(v);
1442  setField(name,*f.get());
1443  return true;
1444  };
1445  inline tBoolean saveField(const tString& name,const double & v) {
1446  SP::UI_Class f=NewInstance();
1447  f->createScalar(v);
1448  setField(name,*f.get());
1449  return true;
1450  };
1451  inline tBoolean saveField(const tString& name,const long double & v) {
1452  SP::UI_Class f=NewInstance();
1453  //SP::UI_Class f=mField;
1454  f->createScalar(v);
1455  setField(name,*f.get());
1456  return true;
1457  };
1458 
1459 
1460  // -----------------------------------------------------------
1461  // save field (const tString& name, const int& n,const T* v)
1462  // --------------------------------------------------------------
1463 
1464  template<class T>
1465  inline tBoolean saveField(const tString& name,const int& n, const T* v) {
1466  tBoolean isCopied=mIsArrayCopied;
1467  return saveField(name,n,v,isCopied);
1468 
1469  };
1470  template<class T>
1471  inline tBoolean saveField(const tString& name,const int& n, const T* v,const tBoolean& isCopied) {
1472 
1473  SP::UI_Class f=NewInstance();
1474  f->createVector(n,v,isCopied);
1475  setField(name,*f.get());
1476  return true;
1477  };
1478 
1479  // -----------------------------------------------------------
1480  // save field (const tString& name, const vector or map <T>& v)
1481  // --------------------------------------------------------------
1482 
1483  template<class T>
1484  inline tBoolean saveField(const tString& name,const vector<T>& v) {
1485  SP::UI_Class f=NewInstance();
1486  f->createVector(v);
1487  setField(name,*f.get());
1488  return true;
1489  };
1490  template<class T,class Q>
1491  inline tBoolean saveField(const tString& name,const map<T,Q>& primitiveMap) {
1492  SP::UI_Class f=NewInstance();
1493  //SP::UI_Class f=mField;
1494  f->createPrimitiveMap(primitiveMap);
1495  setField(name,*f.get());
1496  return true;
1497  }
1498  // -----------------------------------------------------------
1499  // save field (const tString& name, const CORE_XXX<T>& v)
1500  // --------------------------------------------------------------
1501 
1502  template<class T>
1503  inline tBoolean saveField(const tString& name,const CORE_Array<T>& v) {
1504  tBoolean isCopied=mIsArrayCopied;
1505  int n=v.getSize();
1506  return saveField(name,n,v.getValues(),isCopied);
1507  };
1508  template<class T>
1509  inline tBoolean saveField(const tString& name,const CORE_Array2D<T>& v) {
1510  SP::UI_Class f=NewInstance();
1511  //SP::UI_Class f=mField;
1512  f->createVector2D(v);
1513  setField(name,*f.get());
1514  return true;
1515  };
1516 
1517  template<class T>
1518  inline tBoolean saveField(const tString& name,const CORE_Vector<T>& v) {
1519  return saveField(name,v.getValues());
1520  };
1521 
1522  template<class T,class Q>
1523  inline tBoolean saveField(const tString& name,const CORE_Map<T,Q>& primitiveMap) {
1524  SP::UI_Class f=NewInstance();
1525  //SP::UI_Class f=mField;
1526  f->createPrimitiveMap(primitiveMap);
1527  setField(name,*f.get());
1528  return true;
1529  }
1530 
1531 
1532 
1533 
1534  // -----------------
1535  // save matrix field
1536  // ------------------
1537  inline tBoolean createFullMatrixField(const tString& name,const int& nRows,const int& nCols) {
1538  SP::UI_Class f=NewInstance();
1539  //SP::UI_Class f=mField;
1540  f->createFullMatrix(nRows,nCols);
1541  setField(name,*f.get());
1542  return true;
1543  }
1544  inline tBoolean saveFullMatrixField(const tString& name,const int& nRows,const int& nCols,const double* values) {
1545  SP::UI_Class f=NewInstance();
1546  tBoolean isCopied=mIsArrayCopied;
1547  //SP::UI_Class f=mField;
1548  f->createFullMatrix(nRows,nCols,values,isCopied);
1549  setField(name,*f.get());
1550  return true;
1551  }
1552  inline tBoolean saveFullSymmetricMatrixField(const tString& name,const int& nRows,const double* values) {
1553  SP::UI_Class f=NewInstance();
1554  tBoolean isCopied=mIsArrayCopied;
1555  //SP::UI_Class f=mField;
1556  f->createFullSymmetricMatrix(nRows,values,isCopied);
1557  setField(name,*f.get());
1558  return true;
1559  }
1560  inline tBoolean savePackedSymmetricMatrixField(const tString& name,const int& nRows,const double* values) {
1561  SP::UI_Class f=NewInstance();
1562  tBoolean isCopied=mIsArrayCopied;
1563  //SP::UI_Class f=mField;
1564  f->createPackedSymmetricMatrix(nRows,values,isCopied);
1565  setField(name,*f.get());
1566  return true;
1567  }
1568 
1569  // ----------------
1570  // save & load association
1571  // ----------------
1572 public:
1575  virtual void finalize() {
1576  };
1577 
1580  void saveAssociation(const tString& name,const tBoolean& isComposite,const CORE_Object* obj);
1581 
1586  SP::CORE_Object loadAssociation(const tString& name,const tBoolean& isComposite) const;
1587 
1590  inline void saveAssociation(const tString& name,const CORE_Object* obj) {
1591  saveAssociation(name,true,obj);
1592  }
1597  inline SP::CORE_Object loadAssociation(const tString& name) const {
1598  return loadAssociation(name,true);
1599  }
1600 
1603  template<class T>
1604  void saveAssociation(const tString& name,const boost::shared_ptr<T>& obj) {
1605  saveAssociation(name,true,obj.get());
1606  }
1607  template<class T>
1608  void loadAssociation(const tString& name,boost::shared_ptr<T>& object) const {
1609  object=dynamic_sp_cast<T>(loadAssociation(name,true));
1610  }
1611 
1614  template<class T>
1615  void saveAssociation(const tString& name,const boost::weak_ptr<T>& obj) {
1616  SPC::CORE_Object l_obj(obj.lock());
1617  if (l_obj) saveAssociation(name,false,l_obj.get());
1618  }
1619 
1620 
1621  template<class T>
1622  void loadAssociation(const tString& name,boost::weak_ptr<T>& object) const {
1623  boost::shared_ptr<T> obj;
1624  obj=dynamic_sp_cast<T>(loadAssociation(name,false));
1625  object=obj;
1626  }
1627 
1628 
1631  template<class T>
1632  void saveAssociation(const tString& name,const CORE_SharedPointersList<T>& obj);
1633 
1636  template<class T>
1637  void loadAssociation(const tString& name,CORE_SharedPointersList<T>& objs) const;
1638 
1641  template<class T>
1642  void saveAssociation(const tString& name,const CORE_WeakPointersList<T>& obj);
1643 
1646  template<class T>
1647  void loadAssociation(const tString& name,CORE_WeakPointersList<T>& objs) const;
1648 
1651  template<class T,class V>
1652  void saveAssociation(const tString& name,
1653  const CORE_SharedPointersVMap<T,V>& objs);
1654 
1655 
1658  template<class K,class V>
1659  void loadAssociation(const tString& name,
1660  CORE_SharedPointersVMap<K,V>& objs) const;
1661 
1662 
1663 
1664 
1665 
1666 
1667 
1668 };
1669 #include "UI_Class.hpp"
1670 #endif
virtual tBoolean setClassIntoList(const tString &fieldName, const int &index, UI_Class &fieldValue)=0
set the index-th element of the classes list supposed to be composite or not depending on isComposite...
virtual tBoolean getVector(int &n, tString *&value, tBoolean &isCopied) const =0
get the vector value of argvalue
tBoolean loadField(const tString &name, int &n, unsigned char *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1199
tBoolean loadField(const tString &name, int &n, tBoolean *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1191
virtual tBoolean getVector(vector< double > &value) const
get the int vector value of argvalue
Definition: UI_Class.h:459
virtual tBoolean isLongLongInt(tBoolean &isVector, tBoolean &isUnsigned) const =0
virtual tBoolean isInteger(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: UI_Class.h:184
tBoolean loadField(const tString &name, int &n, long double *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1237
void saveClass(const UI_Object &obj)
save class obj in the UI class structure
Definition: UI_Class.h:881
tBoolean saveField(const tString &name, const CORE_Map< T, Q > &primitiveMap)
Definition: UI_Class.h:1523
virtual tBoolean getVector(vector< int > &value) const
get the int vector value of argvalue
Definition: UI_Class.h:442
tBoolean saveField(const tString &name, const long double &v)
Definition: UI_Class.h:1451
int getInterfaceType() const
set the interface type
Definition: UI_Class.h:116
virtual tBoolean getString(tString &name) const =0
get the string value of argvalue
void loadAssociation(const tString &name, boost::shared_ptr< T > &object) const
Definition: UI_Class.h:1608
this class describes an array
Definition: CORE_Vector.h:18
class CORE_SharedPointersList is a list of shared pointers
Definition: CORE_SharedPointersList.h:11
tBoolean saveField(const tString &name, const unsigned long long int &v)
Definition: UI_Class.h:1438
tBoolean loadField(const tString &name, int &n, double *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1227
static tString getClassName(const tString &identityString)
return the class name of the object using only the identity string
Definition: CORE_Object.h:128
tBoolean loadField(const tString &name, long int &v) const
Definition: UI_Class.h:1024
virtual tBoolean hasFields(const vector< tString > &fields) const =0
verify the data of the class is a struct with fields
virtual void createFullMatrix(const int &nRows, const int &nCols, const double *values, tBoolean &isCopied)=0
create a matrix values must be of size nRows*nCols
tBoolean getVector2D(CORE_Array2D< T > &array2D, tBoolean &isCopied) const
get a 2D vector (or dynamical matrix with different row size)
Definition: UI_Class.h:525
void setInterfaceType(const tFlag &f)
set the interface type
Definition: UI_Class.h:111
virtual tBoolean getVector(vector< bool > &value) const
get the int vector value of argvalue
Definition: UI_Class.h:411
tBoolean saveField(const tString &name, const int &n, const T *v)
Definition: UI_Class.h:1465
virtual void printErrorMessage(const tString &msg) const =0
print the message & quit
tBoolean saveFullMatrixField(const tString &name, const int &nRows, const int &nCols, const double *values)
Definition: UI_Class.h:1544
tBoolean saveField(const tString &name, const int &v)
Definition: UI_Class.h:1416
This class is the base class of User Interface package.
Definition: UI_Object.h:23
tBoolean loadField(const tString &name, long double &v) const
Definition: UI_Class.h:1061
This class describes the main interface class for a soft user interface (R,matlab,python etc...) class.
Definition: UI_Class.h:38
tBoolean saveField(const tString &name, const tString &v)
Definition: UI_Class.h:1379
tBoolean loadField(const tString &name, int &n, tString *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1183
virtual void createVector(const int &n, const long int *values)
create a vector size of values must be n
Definition: UI_Class.h:744
virtual void createVector(const int &n, const long double *values)
create a vector size of values must be n
Definition: UI_Class.h:758
virtual tBoolean isInt(tBoolean &isVector, tBoolean &isUnsigned) const =0
SP::CORE_Object loadAssociation(const tString &name) const
load the association Note that the factory class must be set to create the class If nit the return ob...
Definition: UI_Class.h:1597
void setValues(const int &nvs, const T *vs, const int &nrs, const int *rs)
set the values
Definition: CORE_Array2D.h:117
tBoolean saveField(const tString &name, const double &v)
Definition: UI_Class.h:1445
tBoolean loadField(const tString &name, short &v) const
Definition: UI_Class.h:1007
virtual tBoolean isClass() const =0
verify if the data of the class is a struct
tBoolean saveField(const tString &name, const unsigned char &v)
Definition: UI_Class.h:1402
virtual tBoolean hasField(const tString &field) const =0
verify if the data of the class is a struct with fields names
void saveAssociation(const tString &name, const boost::weak_ptr< T > &obj)
save the association with single cardiality
Definition: UI_Class.h:1615
void saveAssociation(const tString &name, const boost::shared_ptr< T > &obj)
save the association with single cardiality
Definition: UI_Class.h:1604
#define tBoolean
Definition: types.h:48
void setValuesByReference(const tArrayIndex &n, T *&array, const tBoolean &hasToBeDeleted)
set the the values by reference the values is destroyed at the end if hasToBeDeleted is true ...
Definition: CORE_Array.h:305
const vector< T > & getValues() const
get values
Definition: CORE_Vector.h:399
virtual tBoolean setField(const tString &fieldName, UI_Class &fieldValue)
set the field fieldName of the class
Definition: UI_Class.h:915
tBoolean saveField(const tString &name, const CORE_Vector< T > &v)
Definition: UI_Class.h:1518
tBoolean loadField(const tString &name, vector< int > &v) const
Definition: UI_Class.h:1102
tBoolean loadField(const tString &name, const int &n, int v[]) const
Definition: UI_Class.h:1295
void saveAssociation(const tString &name, const tBoolean &isComposite, const CORE_Object *obj)
save the association with single cardinality
Definition: UI_Class.cpp:40
virtual tBoolean isDoubleFullMatrix() const =0
#define null
Definition: types.h:13
tBoolean saveField(const tString &name, const short int &v)
Definition: UI_Class.h:1409
int getRowsNumber() const
get the rows number
Definition: CORE_Array2D.h:393
tBoolean getPrimitiveMap(map< T, Q > &primitiveMap) const
get a primitive map
Definition: UI_Class.h:558
tBoolean isArrayCopied() const
return true if the array must be copied
Definition: UI_Class.h:127
virtual void createClass(const tString &id)=0
create the empty class with type id
virtual void getFieldNames(vector< tString > &name) const =0
get the field names
virtual tBoolean isShortInt(tBoolean &isVector, tBoolean &isUnsigned) const =0
tBoolean loadField(const tString &name, CORE_Array< T > &v) const
Definition: UI_Class.h:1131
virtual tBoolean isDouble(tBoolean &isVector) const =0
const int * getRowIndices() const
get the row indices
Definition: CORE_Array2D.h:388
virtual tBoolean getScalar(tString &name) const
get the string value of argvalue
Definition: UI_Class.h:254
virtual tBoolean getVector(vector< unsigned char > &value) const
get the int vector value of argvalue
Definition: UI_Class.h:426
tBoolean loadField(const tString &name, vector< double > &v) const
Definition: UI_Class.h:1111
tBoolean saveFullSymmetricMatrixField(const tString &name, const int &nRows, const double *values)
Definition: UI_Class.h:1552
virtual void createVector(const int &n, const tBoolean *values)
create a vector size of values must be n
Definition: UI_Class.h:728
tBoolean loadPackedSymmetricMatrixField(const tString &name, int &nRows, double *&values) const
Definition: UI_Class.h:1367
tBoolean loadField(const tString &name, vector< long double > &v) const
Definition: UI_Class.h:1120
virtual tBoolean isChar(tBoolean &isVector, tBoolean &isUnsigned) const =0
tBoolean getPrimitiveMap(CORE_Map< T, Q > &primitiveMap) const
get a primitive map
Definition: UI_Class.h:587
tString getIdentityString() const
return the identity string of the object of the form className_at_address
Definition: CORE_Object.h:136
virtual tBoolean getVector(vector< long double > &value) const
get the int vector value of argvalue
Definition: UI_Class.h:475
This class describes a map: primitive type of Key -> shared pointer of Value.
Definition: CORE_SharedPointersVMap.h:15
virtual void createString(const tString &value)=0
create a string
virtual ~UI_Class(void)
destroy an object.
Definition: UI_Class.cpp:17
tBoolean loadField(const tString &name, unsigned long long int &v) const
Definition: UI_Class.h:1042
void put(const Key &k, const Value &v)
set the value at the index k
Definition: CORE_Map.h:178
virtual void createVector(const vector< tString > &values)=0
create a vector of string
tBoolean loadField(const tString &name, vector< tString > &v) const
Definition: UI_Class.h:1075
tBoolean loadField(const tString &name, CORE_Array2D< T > &array2D, tBoolean &isCopied) const
Definition: UI_Class.h:1157
virtual tBoolean isBoolean(tBoolean &isVector) const =0
tBoolean loadField(const tString &name, tString &v) const
Definition: UI_Class.h:973
this class describes a map
Definition: CORE_Map.h:18
tBoolean loadField(const tString &name, unsigned char &v) const
Definition: UI_Class.h:989
tBoolean saveField(const tString &name, const int &n, const T *v, const tBoolean &isCopied)
Definition: UI_Class.h:1471
this class describes an array
Definition: CORE_Array.h:18
tBoolean loadField(const tString &name, const int &n, double v[]) const
Definition: UI_Class.h:1284
tBoolean loadField(const tString &name, vector< unsigned char > &v) const
Definition: UI_Class.h:1093
tBoolean loadField(const tString &name, CORE_Array< T > &v, tBoolean &isCopied) const
Definition: UI_Class.h:1139
tBoolean loadField(const tString &name, int &n, int *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1208
void clear()
clear the map
Definition: CORE_Map.h:207
tBoolean saveField(const tString &name, const tBoolean &v)
Definition: UI_Class.h:1387
virtual tBoolean getField(const tString &field, UI_Class &uiClass) const =0
get the field name of the class
virtual void printMessage(const tString &msg) const =0
print the message on screen
tBoolean loadField(const tString &name, int &n, tString *&v) const
Definition: UI_Class.h:1260
this class describes an array of arrays
Definition: CORE_Array2D.h:13
tBoolean loadField(const tString &name, long long int &v) const
Definition: UI_Class.h:1033
virtual void createVector(const int &n, const int *values)
create a vector size of values must be n
Definition: UI_Class.h:736
SP::CORE_Object loadAssociation(const tString &name, const tBoolean &isComposite) const
load the association Note that the factory class must be set to create the class If nit the return ob...
Definition: UI_Class.cpp:86
tBoolean saveField(const tString &name, const long int &v)
Definition: UI_Class.h:1424
virtual int * createIntVector(const int &n)=0
create a vector of int of size n
tBoolean saveField(const tString &name, const vector< T > &v)
Definition: UI_Class.h:1484
tBoolean loadField(const tString &name, const int &n, long double v[]) const
Definition: UI_Class.h:1273
virtual tBoolean isLongInt(tBoolean &isVector, tBoolean &isUnsigned) const =0
void setVersion(const tString &v)
set the version
Definition: UI_Class.h:133
tBoolean loadField(const tString &name, char &v) const
Definition: UI_Class.h:998
void createVector2D(const CORE_Array2D< T > &array2D)
Definition: UI_Class.h:825
virtual tBoolean isFloat(tBoolean &isVector) const =0
tBoolean loadField(const tString &name, CORE_Array2D< T > &array2D) const
Definition: UI_Class.h:1166
virtual SP::UI_Class NewInstance() const =0
create a new instance of class
virtual void createFullMatrix(const int &nRows, const int &nCols, const double *values)
create a matrix values must be of size nRows*nCols
Definition: UI_Class.h:774
void loadAssociation(const tString &name, boost::weak_ptr< T > &object) const
Definition: UI_Class.h:1622
tBoolean loadField(const tString &name, int &v) const
Definition: UI_Class.h:1015
virtual tString getClassName() const =0
get the class name
virtual int getClassesListSize(const tString &fieldName) const =0
get the number of classes of the list
tBoolean loadField(const tString &name, vector< tBoolean > &v) const
Definition: UI_Class.h:1084
virtual void createFullSymmetricMatrix(const int &nRows, const double *values)
create a full symmetric matrix
Definition: UI_Class.h:794
tBoolean loadFullMatrixField(const tString &name, int &nRows, int &nCols, double *&values, tBoolean &isCopied) const
Definition: UI_Class.h:1332
class CORE_WeakPointersList is a list of weak shared pointers
Definition: CORE_WeakPointersList.h:11
void createPrimitiveMap(const map< T, Q > &primitiveMap)
Definition: UI_Class.h:836
tBoolean saveField(const tString &name, const CORE_Array2D< T > &v)
Definition: UI_Class.h:1509
tBoolean saveField(const tString &name, const long long int &v)
Definition: UI_Class.h:1431
void setValues(const CORE_Array< T > &array, const tArrayIndex &fromIndex)
Definition: CORE_Array.hpp:214
virtual tBoolean getFullMatrix(int &nRows, int &nCols, double *&value, tBoolean &isCopied) const =0
get the double full matrix value of argvalue
abstract base class for most classes.
Definition: CORE_Object.h:30
virtual double * createDoubleVector(const int &n)=0
create a vector of double of size n
const T * getValues(tArrayIndex &s) const
get the values of the util vector
Definition: CORE_Array.h:371
tBoolean getPackedSymmetricMatrix(int &nRows, double *&value, tBoolean &isCopied) const
Definition: UI_Class.h:517
#define tString
Definition: types.h:49
void setIsArrayCopied(const tBoolean &v)
set if the arrays must be copied
Definition: UI_Class.h:121
const T * getValues() const
get the values
Definition: CORE_Array2D.h:377
virtual tBoolean setField(const tString &fieldName, const tBoolean &isComposite, UI_Class &fieldValue)=0
set the field fieldName of the class
DEFINE_SPTR(UI_Class)
tBoolean saveField(const tString &name, const char &v)
Definition: UI_Class.h:1395
tBoolean loadField(const tString &name, double &v) const
Definition: UI_Class.h:1052
tBoolean loadField(const tString &name, int &n, unsigned long int *&v, tBoolean &isCopied) const
Definition: UI_Class.h:1218
virtual void createPackedSymmetricMatrix(const int &nRows, const double *values)
create a packed symmetric matrix values must be of size nRows*(nRows+1)/2
Definition: UI_Class.h:810
virtual tBoolean isLongDouble(tBoolean &isVector) const =0
int getValuesNumber() const
return the size of the array
Definition: CORE_Array2D.h:355
virtual void finalize()
method called for finalizing the saving in UI_CLass
Definition: UI_Class.h:1575
static SP::CORE_ClassFactory New()
Definition: CORE_ClassFactory.h:62
tBoolean loadField(const tString &name, bool &v) const
Definition: UI_Class.h:981
tBoolean loadFullSymmetricMatrixField(const tString &name, int &nRows, double *&values) const
Definition: UI_Class.h:1354
tBoolean loadField(const tString &name, CORE_Vector< T > &v) const
Definition: UI_Class.h:1172
void saveAssociation(const tString &name, const CORE_Object *obj)
save the association with single cardinality
Definition: UI_Class.h:1590
tBoolean loadPackedSymmetricMatrixField(const tString &name, int &nRows, double *&values, tBoolean &isCopied) const
Definition: UI_Class.h:1358
virtual void saveToUIClass(UI_Class &mclass) const
how to save the object from a mate model class
Definition: UI_Object.cpp:18
tBoolean loadField(const tString &name, int &n, int *&v) const
Definition: UI_Class.h:1264
virtual void createFullSymmetricMatrix(const int &nRows, const double *values, const tBoolean &isCopied)
create a full symmetric matrix values must be of size nRows*nRows
Definition: UI_Class.h:786
const tArrayIndex & getSize() const
return the size of the array
Definition: CORE_Array.h:223
tBoolean saveField(const tString &name, const CORE_Array< T > &v)
Definition: UI_Class.h:1503
tBoolean loadField(const tString &name, CORE_Map< T, Q > &primitiveMap) const
Definition: UI_Class.h:1320
tBoolean getFullSymmetricMatrix(int &nRows, double *&value, tBoolean &isCopied) const
Definition: UI_Class.h:508
tBoolean loadField(const tString &name, int &n, long double *&v) const
Definition: UI_Class.h:1252
virtual void createScalar(const tString &value)
create a scalar
Definition: UI_Class.h:619
virtual tBoolean getClassFromList(const tString &fieldName, const int &index, UI_Class &uiClass) const =0
get the field of the index-th class in the list
tBoolean loadField(const tString &name, map< T, Q > &primitiveMap) const
Definition: UI_Class.h:1311
void createPrimitiveMap(const CORE_Map< T, Q > &primitiveMap)
Definition: UI_Class.h:860
void setFactory(SP::CORE_ClassFactory fact)
Definition: UI_Class.h:94
virtual void createPackedSymmetricMatrix(const int &nRows, const double *values, const tBoolean &isCopied)
create a packed symmetric matrix values must be of size nRows*(nRows+1)/2
Definition: UI_Class.h:803
tBoolean createFullMatrixField(const tString &name, const int &nRows, const int &nCols)
Definition: UI_Class.h:1537
void createVector2D(const CORE_Array2D< T > &array2D, const tBoolean &isCopied)
Definition: UI_Class.h:818
tBoolean savePackedSymmetricMatrixField(const tString &name, const int &nRows, const double *values)
Definition: UI_Class.h:1560
tBoolean saveField(const tString &name, const map< T, Q > &primitiveMap)
Definition: UI_Class.h:1491
virtual tBoolean isString(tBoolean &isVector) const =0
void getValues(CORE_Vector< Value > &vals) const
return an array of values
Definition: CORE_Map.hpp:67
UI_Class(void)
create an object
Definition: UI_Class.cpp:11
virtual void createVector(const int &n, const double *values)
create a vector size of values must be n
Definition: UI_Class.h:751
tBoolean loadFullMatrixField(const tString &name, int &nRows, int &nCols, double *&values) const
Definition: UI_Class.h:1341
tString getVersion() const
set the version
Definition: UI_Class.h:138
tBoolean loadFullSymmetricMatrixField(const tString &name, int &nRows, double *&values, tBoolean &isCopied) const
Definition: UI_Class.h:1345
virtual void createClassesList(const tString &fieldName, const tBoolean &isComposite, const int &n)=0
create a multiple association of size n with name fieldname of type isComoposite
#define tFlag
Definition: types.h:14
tBoolean loadField(const tString &name, int &n, double *&v) const
Definition: UI_Class.h:1256
void getKeys(vector< Key > &ks) const
return a vector of keys
Definition: CORE_Map.hpp:109