C++ main module for mmsd Package  1.0
MM_Structure.h
Go to the documentation of this file.
1 #ifndef MM_Structure_H
2 #define MM_Structure_H
3 
4 #include "UI_Class.h"
5 #include "MM_Data.h"
6 #include "MM_Class.h"
7 #include "MM_Attribute.h"
8 #include "CORE_Exception.h"
9 
16 class MM_Structure : public virtual UI_Class {
17  SP_OBJECT(MM_Structure);
18  // ATTRIBUTES
19 
20 private:
21 
22 
23 
24  // ASSOCIATIONS
25  SP::MM_Data mData;
26 
27 
28 protected:
29  // METHODS
30 
31  // CONSTRUCTORS
32 
34  MM_Structure(void);
35 
36 
37 
38  // DESTRUCTORS
39 
40 
43  virtual ~MM_Structure(void);
44 
45 
46 
47 public:
48  //----------------
49  // NEW constructors
50  // ---------------
51 
54  inline static SP::MM_Structure New() {
55  SP::MM_Structure p(new MM_Structure(),
57  p->setThis(p);
58  return p;
59  };
62  virtual SP::UI_Class NewInstance() const {
63  return New();
64  };
65  // -----------
66  // DATA setting
67  // ------------
70  inline void setData(SP::MM_Data data) {
71  mData=data;
72  };
73 
76  inline SP::MM_Data getData() const {
77  return mData;
78  };
79 
80 
81 
82  // -----------------------
83  // Data Type verification
84  // -----------------------
85 
86  /*\brief verify the data of the class is a boolean scalar
87  */
88  virtual tBoolean isBoolean(tBoolean& isVector) const {
89  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
90  if (data==null) return false;
91  isVector=data->isVector();
92  return data->isBoolean();
93  }
94 
95 
96  /*\brief verify the data of the class is double vector
97  */
98  virtual tBoolean isChar(tBoolean& isVector,tBoolean& isUnsigned) const {
99  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
100  if (data==null) return false;
101  isVector=data->isVector();
102  return data->isChar(isUnsigned);
103  };
104  /*\brief verify the data of the class is double vector
105  */
106  virtual tBoolean isShortInt(tBoolean& isVector,tBoolean& isUnsigned) const {
107  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
108  if (data==null) return false;
109  isVector=data->isVector();
110  return data->isShortInt(isUnsigned);
111  };
112  /*\brief verify the data of the class is double vector
113  */
114  virtual tBoolean isInt(tBoolean& isVector,tBoolean& isUnsigned) const {
115  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
116  if (data==null) return false;
117  isVector=data->isVector();
118  return data->isInt(isUnsigned);
119  };
120  /*\brief verify the data of the class is double vector
121  */
122  virtual tBoolean isLongInt(tBoolean& isVector,tBoolean& isUnsigned) const {
123  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
124  if (data==null) return false;
125  isVector=data->isVector();
126  return data->isLongInt(isUnsigned);
127  };
128  /*\brief verify the data of the class is double vector
129  */
130  virtual tBoolean isLongLongInt(tBoolean& isVector,tBoolean& isUnsigned) const {
131  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
132  if (data==null) return false;
133  isVector=data->isVector();
134  return data->isLongLongInt(isUnsigned);
135  };
136 
137  /*\brief verify the data of the class is double vector
138  */
139  virtual tBoolean isFloat(tBoolean& isVector) const {
140  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
141  if (data==null) return false;
142  isVector=data->isVector();
143  return (data->isFloat());
144  }
145  /*\brief verify the data of the class is double vector
146  */
147  virtual tBoolean isDouble(tBoolean& isVector) const {
148  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
149  if (data==null) return false;
150  isVector=data->isVector();
151  return (data->isDouble());
152  }
153  /*\brief verify the data of the class is double vector
154  */
155  virtual tBoolean isLongDouble(tBoolean& isVector) const {
156  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
157  if (data==null) return false;
158  isVector=data->isVector();
159  return (data->isLongDouble());
160  }
161 
162  /*\brief verify the data of the class is a string vector
163  */
164  virtual tBoolean isString(tBoolean& isVector) const {
165  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
166  if (data==null) return false;
167  isVector=data->isVector();
168  return data->isString();
169  }
170 
171 
172  /*\brief verify that the data is double full maxtrix
173  */
174  virtual tBoolean isDoubleFullMatrix() const {
175  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
176  if (data==null) return false;
177  return (data->isDouble() && data->isMatrix());
178  };
179 
180 
181 
184  virtual tBoolean isClass() const {
185  const MM_Class *data=dynamic_cast<const MM_Class*>(mData.get());
186  return (data!=null);
187 
188  }
191  virtual tBoolean hasField(const tString& field) const {
192  const MM_Class *data=dynamic_cast<const MM_Class*>(mData.get());
193  if (data==null) return false;
194  return data->hasField(field);
195  };
198  virtual tBoolean hasFields(const vector<tString>& fields) const {
199  const MM_Class *data=dynamic_cast<const MM_Class*>(mData.get());
200  if (data==null) return false;
201  int nFields=fields.size();
202  for (int i=0;i<nFields;i++) {
203  if (!data->hasField(fields[i])) return false;
204  }
205  return true;
206  };
207 
208 
209  // -------------------------
210  // Scalar Conversion methods
211  // -------------------------
212 
213 
217  virtual tBoolean getString(tString& name) const {
218  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
219  return (data->getValue(name));
220  }
221 
225  virtual tBoolean getScalar(tBoolean& value) const {
226  tBoolean isVector=false;
227  isString(isVector);
228  if (isVector) return false;
229  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
230  data->getValue(value);
231  return true;
232  }
236  virtual tBoolean getScalar(char& value) const {
237  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
238  data->getValue(value);
239  return true;
240  }
244  virtual tBoolean getScalar(unsigned char& value) const {
245 
246  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
247  data->getValue(value);
248  return true;
249  }
253  virtual tBoolean getScalar(int& value) const {
254 
255  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
256  data->getValue(value);
257  return true;
258  }
262  virtual tBoolean getScalar(short int& value) const {
263 
264  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
265  data->getValue(value);
266  return true;
267  }
271  virtual tBoolean getScalar(long int& value) const {
272  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
273 
274  data->getValue(value);
275  return true;
276  }
280  virtual tBoolean getScalar(long long int& value) const {
281  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
282 
283  data->getValue(value);
284  return true;
285  }
289  virtual tBoolean getScalar(unsigned long long int& value) const {
290  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
291 
292  data->getValue(value);
293  return true;
294  }
298  virtual tBoolean getScalar(unsigned long int & value) const {
299  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
300 
301  data->getValue(value);
302  return true;
303  }
304 
308  virtual tBoolean getScalar(double& value) const {
309  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
310 
311  data->getValue(value);
312  return true;
313  }
314 
318  virtual tBoolean getScalar(long double& value) const {
319  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
320  data->getValue(value);
321  return true;
322  }
323 
324 
325  // -------------------------
326  // Vector Conversion methods
327  // -------------------------
328 
332  virtual tBoolean getVector(vector<tString>& names) const {
333  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
334  return data->getValue(names);
335  };
336 
337 
341  virtual tBoolean getVector(int& n,tString*& value,tBoolean& isCopied) const {
342  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
343  tBoolean isVector=false;
344  if (!isString(isVector)) return false;
345  if (!isVector) return false;
346  if (isCopied) {
347  return data->getValue(n,value);
348  }
349  else return data->getValue(n,(const tString*&) value);
350  };
351 
355  virtual tBoolean getVector(int& n,bool*& value,tBoolean& isCopied) const {
356  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
357  tBoolean isVector=false;
358  tBoolean isBool=isBoolean(isVector);
359  if (!isVector) return false;
360  if (isCopied || !isBool) {
361  isCopied=true;
362  return data->getValue(n,value);
363  }
364  else return data->getValue(n,(const bool*&) value);
365  };
366 
370  virtual tBoolean getVector(int& n,unsigned char*& value,tBoolean& isCopied) const {
371  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
372  tBoolean isVector=false,isUnsigned=false;
373  tBoolean isTypeOk=isChar(isVector,isUnsigned);
374  if (!isVector) return false;
375  if (!isUnsigned) return false;
376  if (isCopied || !isTypeOk) {
377  isCopied=true;
378  return data->getValue(n,value);
379  }
380  else return data->getValue(n,(const unsigned char*&) value);
381  };
382 
386  virtual tBoolean getVector(int& n,unsigned int*& value,tBoolean& isCopied) const {
387  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
388  tBoolean isVector=false,isUnsigned=false;
389  tBoolean isTypeOk=isInt(isVector,isUnsigned);
390  if (!isVector) return false;
391  if (!isUnsigned) return false;
392  if (isCopied || !isTypeOk) {
393  isCopied=true;
394  return data->getValue(n,value);
395  }
396  else return data->getValue(n,(const unsigned int*&) value);
397  };
398 
402  virtual tBoolean getVector(int& n,int*& value,tBoolean& isCopied) const {
403  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
404  tBoolean isVector=false,isUnsigned=false;
405  tBoolean isTypeOk=isInt(isVector,isUnsigned);
406  if (!isVector) return false;
407  if (isUnsigned) return false;
408  if (isCopied || !isTypeOk) {
409  isCopied=true;
410  return data->getValue(n,value);
411  }
412  else return data->getValue(n,(const int*&) value);
413  };
417  virtual tBoolean getVector(int& n,unsigned long int*& value,tBoolean& isCopied) const {
418  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
419  tBoolean isVector=false,isUnsigned=false;
420  tBoolean isTypeOk=isLongInt(isVector,isUnsigned);
421  if (!isVector) return false;
422  if (!isUnsigned) return false;
423  if (isCopied || !isTypeOk ) {
424  isCopied=true;
425  return data->getValue(n,value);
426  }
427  else return data->getValue(n,(const unsigned long int*&) value);
428  };
432  virtual tBoolean getVector(int& n,long int*& value,tBoolean& isCopied) const {
433  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
434  tBoolean isVector=false,isUnsigned=false;
435  tBoolean isTypeOk=isLongInt(isVector,isUnsigned);
436  if (!isVector) return false;
437  if (isUnsigned) return false;
438  if (isCopied || !isTypeOk ) {
439  isCopied=true;
440  return data->getValue(n,value);
441  }
442  else return data->getValue(n,(const long int*&) value);
443  };
447  virtual tBoolean getVector(int& n,long long int*& value,tBoolean& isCopied) const {
448  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
449  tBoolean isVector=false,isUnsigned=false;
450  tBoolean isTypeOk=isLongLongInt(isVector,isUnsigned);
451  if (!isVector) return false;
452  if (isUnsigned) return false;
453  if (isCopied || !isTypeOk ) {
454  isCopied=true;
455  return data->getValue(n,value);
456  }
457  else return data->getValue(n,(const long long int*&) value);
458  };
459 
463  virtual tBoolean getVector(int& n,double*& value,tBoolean& isCopied) const {
464  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
465  tBoolean isVector=false;
466  tBoolean isTypeOk=isDouble(isVector);
467  if (!isVector) return false;
468  if (isCopied || !isTypeOk ) {
469  isCopied=true;
470  return data->getValue(n,value);
471  }
472  else return data->getValue(n,(const double*&) value);
473  };
474 
478  virtual tBoolean getVector(int& n,long double*& value,tBoolean& isCopied) const {
479  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
480  tBoolean isVector=false;
481  tBoolean isTypeOk=isLongDouble(isVector);
482  if (!isVector) return false;
483  if (isCopied || !isTypeOk ) {
484  isCopied=true;
485  return data->getValue(n,value);
486  }
487  else return data->getValue(n,(const long double*&) value);
488  };
489 
493  virtual tBoolean getFullMatrix(int& nRows,int& nCols,
494  double*& value,
495  tBoolean& isCopied) const {
496  const MM_Attribute *data=dynamic_cast<const MM_Attribute*>(mData.get());
497  tBoolean isTypeOk=isDoubleFullMatrix();
498  int n=0;
499  if (isCopied || !isTypeOk ) {
500  isCopied=true;
501  return data->getValue(nRows,nCols,n,(double*&)value);
502  }
503  else return data->getValue(nRows,nCols,n,(const double*&)value);
504 
505  };
506 
507 
508  // ------------------------------
509  // attributes Creation method
510  // ------------------------------
513  void createValue(const tString& type,
514  const tString& card,
515  const tString& value,
516  const tString& separator,const tString& start,const tString& end) {
517  SP::MM_Attribute data=MM_Attribute::New();
518  data->setValue(type,card,value,separator,start,end);
519  mData=data;
520  }
521 
522 
523 
526  virtual void createString(const tString& value);
529  virtual void createScalar(const unsigned char& value);
532  virtual void createScalar(const short int& value);
535  virtual void createScalar(const unsigned int& value);
538  virtual void createScalar(const int& value);
541  virtual void createScalar(const long int& value);
544  virtual void createScalar(const long long int& value);
547  virtual void createScalar(const unsigned long long int& value);
550  virtual void createScalar(const tBoolean& value);
553  virtual void createScalar(const double& value);
556  virtual void createScalar(const long double& value);
557 
560  virtual double *createDoubleVector(const int& n);
563  virtual int *createIntVector(const int& n);
564 
568  virtual void createVector(const vector<tString>& values);
569 
573  virtual void createVector(const vector<bool>& values);
577  virtual void createVector(const vector<unsigned char>& values);
581  virtual void createVector(const vector<int>& values);
585  virtual void createVector(const vector<double>& values);
589  virtual void createVector(const vector<long double>& values);
590 
594  virtual void createVector(const int& n,const tString* values) {
595  createVector(n,values,true);
596  }
600  virtual void createVector(const int& n,const tBoolean* values) {
601  createVector(n,values,true);
602  }
603  /* size of values must be n
604  */
605  virtual void createVector(const int& n,const unsigned char* values) {
606  createVector(n,values,true);
607  }
608  /* size of values must be n
609  */
610  virtual void createVector(const int& n,const unsigned int* values) {
611  createVector(n,values,true);
612  }
613  /* size of values must be n
614  */
615  virtual void createVector(const int& n,const int* values) {
616  createVector(n,values,true);
617  }
621  virtual void createVector(const int& n,const long int* values) {
622  createVector(n,values,true);
623  };
627  virtual void createVector(const int& n,const long long int* values) {
628  createVector(n,values,true);
629  };
630 
634  virtual void createVector(const int& n,const double* values) {
635  createVector(n,values,true);
636  }
637 
641  virtual void createVector(const int& n,const long double* values) {
642  createVector(n,values,true);
643  }
644 
645 
649  virtual void createVector(const int& n,const tString*& values,const tBoolean& isCopied);
653  virtual void createVector(const int& n,const tBoolean*& values,const tBoolean& isCopied);
654 
658  virtual void createVector(const int& n,const unsigned char*& values,const tBoolean& isCopied);
662  virtual void createVector(const int& n,const unsigned int*& values,const tBoolean& isCopied);
666  virtual void createVector(const int& n,const int*& values,const tBoolean& isCopied);
670  virtual void createVector(const int& n,const long int*& values,const tBoolean& isCopied);
674  virtual void createVector(const int& n,long int*& values,const tBoolean& isCopied) {
675  createVector(n,(const long int *&) values,isCopied);
676  };
680  virtual void createVector(const int& n,const long long int*& values,const tBoolean& isCopied);
684  virtual void createVector(const int& n,long long int*& values,const tBoolean& isCopied) {
685  createVector(n,(const long long int *&) values,isCopied);
686  };
687 
691  virtual void createVector(const int& n,const double*& values,const tBoolean& isCopied);
695  virtual void createVector(const int& n,const long double*& values,const tBoolean& isCopied);
696 
700  virtual void createFullMatrix(const int& nRows,const int& nCols,const double* values,tBoolean& isCopied);
701 
705  virtual double *createFullMatrix(const int& nRows,const int& nCols);
706 
707 
708 
709  // -----------------
710  // class creation
711  // -----------------
714  virtual void createClass(const tString& id);
715 
716 
720  return UI_Class::createClass(id,fields);
721  }
722 
725  virtual void createClassesList(const tString& fieldName,const tBoolean& isComposite,const int& n);
726 
727 
728 
729 
732  virtual tBoolean setClassIntoList(const tString& fieldName,const int& index,UI_Class& fieldValue);
733 
734 
737  virtual tBoolean setField(const tString& fieldName,const tBoolean& isComposite,UI_Class& fieldValue);
740  virtual tBoolean setField(const tString& fieldName,UI_Class& fieldValue) {
741  return setField(fieldName,true,fieldValue);
742  };
743 
744 
745 
746  // -------------
747  // Get Class fields
748  // --------------
749  virtual void getFieldNames(vector<tString>& fields) const {
750  MM_Class *data=dynamic_cast<MM_Class*>(mData.get());
751  if (data==null) return ;
752  return data->getFieldNames(fields);
753  }
756  virtual tString getClassName() const {
757  MM_Class *data=dynamic_cast<MM_Class*>(mData.get());
758  if (data==null) return "";
759  return data->getClassId();
760  };
761 
764  virtual int getClassesListSize(const tString& name) const {
765  const MM_Class *data=dynamic_cast<const MM_Class*>(mData.get());
766  if (data==null) return 0;
767  return data->getAssociationCardinality(name);
768  }
769 
772  virtual tBoolean getClassFromList(const tString& name,const int& index,UI_Class& uiClass) const {
773  // get the class
774  MM_Class *data=dynamic_cast<MM_Class*>(mData.get());
775  if (data==null) return false;
776 
777  // get the class at index
778  SP::MM_Data value=data->getAssociation(name,index);
779 
780  // set the data
781  MM_Structure *mmClass=dynamic_cast< MM_Structure *>(&uiClass);
782  if (mmClass==null) return false;
783  mmClass->setData(value);
784  return (value.get()!=null);
785  }
788  virtual tBoolean getField(const tString& field,UI_Class& uiClass) const {
789  // get the class
790  MM_Class *data=dynamic_cast<MM_Class*>(mData.get());
791  if (data==null) return false;
792 
793  // get the class
794  SP::MM_Data value=data->getField(field);
795 
796  // set the data
797 
798  MM_Structure *mmClass=dynamic_cast< MM_Structure *>(&uiClass);
799  if (mmClass==null) return false;
800  mmClass->setData(value);
801  return (value.get()!=null);
802  }
803 
804 
805  // -------------
806  // print methods
807  // -------------
810  virtual void printErrorMessage(const tString& msg) const {
811  throw CORE_Exception("ui/metamodel","MM_Structure",msg);
812  };
813 
816  virtual void printMessage(const tString& msg) const {
817  cout << msg.c_str() << "\n";
818  };
819 
822  virtual tString toString() const {
823  return mData->toString();
824  }
825 };
826 
827 #endif
virtual tBoolean getScalar(long double &value) const
get the double value of argvalue
Definition: MM_Structure.h:318
virtual void createVector(const int &n, const double *values)
create a vector size of values must be n
Definition: MM_Structure.h:634
tBoolean isChar(tBoolean &isUnsigned) const
verify if the field is an short
Definition: MM_Attribute.h:192
tBoolean isDouble() const
verify if the field is a double
Definition: MM_Attribute.h:156
virtual void createFullMatrix(const int &nRows, const int &nCols, const double *values, tBoolean &isCopied)
create a matrix values must be of size nRows*nCols
Definition: MM_Structure.cpp:79
virtual void createScalar(const unsigned char &value)
create a scalar
Definition: MM_Structure.cpp:185
virtual void createVector(const int &n, const int *values)
create a vector size of values must be n
Definition: MM_Structure.h:615
This class is a primary field.
Definition: MM_Attribute.h:15
virtual tBoolean isShortInt(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: MM_Structure.h:106
tBoolean isString() const
verify if the field is a string
Definition: MM_Attribute.h:204
MM_Structure(void)
create an object
Definition: MM_Structure.cpp:4
virtual void createClass(const tString &id)
create the empty structure
Definition: MM_Structure.cpp:15
virtual tBoolean getVector(int &n, double *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:463
virtual tBoolean getScalar(long int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:271
tBoolean isVector() const
isVector
Definition: MM_Attribute.h:140
virtual tBoolean isBoolean(tBoolean &isVector) const
Definition: MM_Structure.h:88
virtual tBoolean getVector(int &n, tString *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:341
virtual tString getClassName() const
get the field type
Definition: MM_Structure.h:756
virtual tBoolean setClassIntoList(const tString &fieldName, const int &index, UI_Class &fieldValue)
set the index-th element of the classes list supposed to be composite or not depending on isComposite...
Definition: MM_Structure.cpp:36
virtual tBoolean getScalar(unsigned long int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:298
virtual tBoolean hasField(const tString &field) const
verify if the mData is a class which contains field
Definition: MM_Structure.h:191
virtual tBoolean getString(tString &name) const
get the string value of argvalue
Definition: MM_Structure.h:217
This class describes the main interface class for a soft user interface (R,matlab,python etc...) class.
Definition: UI_Class.h:38
tBoolean isMatrix() const
isVector
Definition: MM_Attribute.h:145
virtual tBoolean isClass() const
verify if the data is a struct with fields names
Definition: MM_Structure.h:184
virtual void createString(const tString &value)
create a string
Definition: MM_Structure.cpp:232
void createValue(const tString &type, const tString &card, const tString &value, const tString &separator, const tString &start, const tString &end)
set generic value
Definition: MM_Structure.h:513
virtual tBoolean getScalar(tBoolean &value) const
get the boolean value of argvalue
Definition: MM_Structure.h:225
tBoolean isLongDouble() const
verify if the field is a long double
Definition: MM_Attribute.h:151
virtual tBoolean hasFields(const vector< tString > &fields) const
verify if the mData is a struct with fields names
Definition: MM_Structure.h:198
#define tBoolean
Definition: types.h:48
virtual tBoolean getScalar(unsigned long long int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:289
virtual tBoolean getVector(vector< tString > &names) const
get the string vector value of argvalue
Definition: MM_Structure.h:332
virtual int getClassesListSize(const tString &name) const
get the number of classes in the structure
Definition: MM_Structure.h:764
virtual tBoolean createClass(const tString &id, CORE_SharedPointersVMap< tString, UI_Class > &fields)
creathe the class
Definition: MM_Structure.h:719
void setData(SP::MM_Data data)
set & get the data
Definition: MM_Structure.h:70
tString getClassId() const
get the class id
Definition: MM_Class.h:383
virtual tBoolean getVector(int &n, long double *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:478
virtual void createVector(const int &n, const tString *values)
create a vector size of values must be n
Definition: MM_Structure.h:594
#define null
Definition: types.h:13
virtual void createVector(const int &n, const long int *values)
create a vector size of values must be n
Definition: MM_Structure.h:621
virtual tBoolean getField(const tString &field, UI_Class &uiClass) const
get the field
Definition: MM_Structure.h:788
This class is a description of class.
Definition: MM_Class.h:17
virtual tString toString() const
turn the class into string
Definition: MM_Structure.h:822
SP::MM_Data getAssociation(const tString &name, const int &index)
Definition: MM_Class.h:432
virtual tBoolean getVector(int &n, long long int *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:447
virtual void createClass(const tString &id)=0
create the empty class with type id
virtual tBoolean isChar(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: MM_Structure.h:98
virtual tBoolean getFullMatrix(int &nRows, int &nCols, double *&value, tBoolean &isCopied) const
get the double full matrix value of argvalue
Definition: MM_Structure.h:493
virtual tBoolean getVector(int &n, int *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:402
tBoolean hasField(const tString &name) const
return true if the class contains attribute or association with name
Definition: MM_Class.h:416
This class is a class for MetaModel exchange.
Definition: MM_Structure.h:16
void getFieldNames(vector< tString > &fields) const
get the field names
Definition: MM_Class.h:468
virtual tBoolean isDoubleFullMatrix() const
Definition: MM_Structure.h:174
virtual tBoolean getVector(int &n, unsigned char *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:370
virtual void createVector(const int &n, const long long int *values)
create a vector size of values must be n
Definition: MM_Structure.h:627
tBoolean isFloat() const
verify if the field is a double
Definition: MM_Attribute.h:161
virtual void createVector(const int &n, const unsigned int *values)
Definition: MM_Structure.h:610
This class describes a map: primitive type of Key -> shared pointer of Value.
Definition: CORE_SharedPointersVMap.h:15
tBoolean isInt(tBoolean &isUnsigned) const
verify if the field is an int
Definition: MM_Attribute.h:178
this class describes the exceptions raised for CORE package
Definition: CORE_Exception.h:15
virtual tBoolean getScalar(double &value) const
get the double value of argvalue
Definition: MM_Structure.h:308
virtual void createClassesList(const tString &fieldName, const tBoolean &isComposite, const int &n)
create a multiple association of size n with name fieldname of type isComoposite
Definition: MM_Structure.cpp:22
virtual tBoolean getScalar(short int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:262
virtual tBoolean getVector(int &n, long int *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:432
virtual tBoolean getScalar(long long int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:280
virtual tBoolean getScalar(unsigned char &value) const
get the boolean value of argvalue
Definition: MM_Structure.h:244
virtual void printMessage(const tString &msg) const
print the message on screen
Definition: MM_Structure.h:816
virtual tBoolean isInt(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: MM_Structure.h:114
virtual tBoolean getVector(int &n, unsigned long int *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:417
virtual void printErrorMessage(const tString &msg) const
print the message & quit
Definition: MM_Structure.h:810
virtual tBoolean getScalar(char &value) const
get the boolean value of argvalue
Definition: MM_Structure.h:236
tBoolean isBoolean() const
verify if the field is an short
Definition: MM_Attribute.h:198
virtual void createVector(const int &n, long long int *&values, const tBoolean &isCopied)
create a vector size of values must be n
Definition: MM_Structure.h:684
tBoolean isShortInt(tBoolean &isUnsigned) const
verify if the field is an int
Definition: MM_Attribute.h:184
virtual SP::UI_Class NewInstance() const
create a new instance of class
Definition: MM_Structure.h:62
virtual tBoolean setField(const tString &fieldName, const tBoolean &isComposite, UI_Class &fieldValue)
set the field fieldName of the class
Definition: MM_Structure.cpp:66
static SP::MM_Attribute New()
creta a matlab class
Definition: MM_Attribute.h:84
virtual void createVector(const int &n, const tBoolean *values)
create a vector size of values must be n
Definition: MM_Structure.h:600
int getAssociationCardinality(const tString &name) const
Definition: MM_Class.h:439
virtual double * createDoubleVector(const int &n)
create a vector of double of size n
Definition: MM_Structure.cpp:90
virtual tBoolean isDouble(tBoolean &isVector) const
Definition: MM_Structure.h:147
DEFINE_SPTR(MM_Structure)
virtual void getFieldNames(vector< tString > &fields) const
get the field names
Definition: MM_Structure.h:749
virtual tBoolean setField(const tString &fieldName, UI_Class &fieldValue)
set the field fieldName of the class
Definition: MM_Structure.h:740
#define tString
Definition: types.h:49
virtual void createVector(const int &n, const unsigned char *values)
Definition: MM_Structure.h:605
tBoolean isLongLongInt(tBoolean &isUnsigned) const
verify if the field is a long long int
Definition: MM_Attribute.h:172
SP::MM_Data getData() const
get the build data
Definition: MM_Structure.h:76
tBoolean isLongInt(tBoolean &isUnsigned) const
verify if the field is a long int
Definition: MM_Attribute.h:166
virtual void createVector(const int &n, const long double *values)
create a vector size of values must be n
Definition: MM_Structure.h:641
virtual void createVector(const int &n, long int *&values, const tBoolean &isCopied)
create a vector size of values must be n
Definition: MM_Structure.h:674
virtual tBoolean getClassFromList(const tString &name, const int &index, UI_Class &uiClass) const
get the data field at index of the list
Definition: MM_Structure.h:772
virtual tBoolean isLongInt(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: MM_Structure.h:122
SP::MM_Data getField(const tString &name)
Definition: MM_Class.h:461
virtual tBoolean isLongDouble(tBoolean &isVector) const
Definition: MM_Structure.h:155
static SP::MM_Structure New()
creta a matlab class
Definition: MM_Structure.h:54
virtual tBoolean isString(tBoolean &isVector) const
Definition: MM_Structure.h:164
virtual int * createIntVector(const int &n)
create a vector of int of size n
Definition: MM_Structure.cpp:96
virtual tBoolean isLongLongInt(tBoolean &isVector, tBoolean &isUnsigned) const
Definition: MM_Structure.h:130
virtual tBoolean getVector(int &n, bool *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:355
tBoolean getValue(tString &v) const
get the value
Definition: MM_Attribute.h:836
virtual tBoolean getScalar(int &value) const
get the integer value of argvalue
Definition: MM_Structure.h:253
virtual tBoolean getVector(int &n, unsigned int *&value, tBoolean &isCopied) const
get the vector value of argvalue
Definition: MM_Structure.h:386
virtual ~MM_Structure(void)
destroy an object.
Definition: MM_Structure.cpp:10
virtual void createVector(const vector< tString > &values)
create a vector size of values must be n
Definition: MM_Structure.cpp:104
virtual tBoolean isFloat(tBoolean &isVector) const
Definition: MM_Structure.h:139
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106