Back to index

salome-kernel  6.5.0
SALOMEDSImpl_AttributeParameter.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : SALOMEDSImpl_AttributeIOR.hxx
00024 //  Author : Sergey RUIN
00025 //  Module : SALOME
00026 //
00027 #ifndef _SALOMEDSImpl_AttributeParameter_HeaderFile
00028 #define _SALOMEDSImpl_AttributeParameter_HeaderFile
00029 
00030 #include "SALOMEDSImpl_Defines.hxx"
00031 #include "DF_Attribute.hxx"
00032 #include "DF_Label.hxx"
00033 #include "SALOMEDSImpl_GenericAttribute.hxx"
00034 
00035 #include <vector>
00036 #include <string>
00037 #include <map>
00038 
00039 enum Parameter_Types {PT_INTEGER, PT_REAL, PT_BOOLEAN, PT_STRING, PT_REALARRAY, PT_INTARRAY, PT_STRARRAY};
00040 
00046 class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeParameter : 
00047   public SALOMEDSImpl_GenericAttribute 
00048 {
00049 
00050 private:
00051 
00052   std::map<std::string, int>                          _ints;
00053   std::map<std::string, double>                       _reals;
00054   std::map<std::string, std::string>                  _strings;
00055   std::map<std::string, bool>                         _bools;
00056   std::map< std::string, std::vector<double> >        _realarrays;
00057   std::map< std::string, std::vector<int> >           _intarrays;
00058   std::map< std::string, std::vector<std::string> >   _strarrays;
00059 
00060 public:
00061 
00062   static const std::string& GetID() ;
00063   
00064   SALOMEDSImpl_AttributeParameter():SALOMEDSImpl_GenericAttribute("AttributeParameter") {}
00065   static SALOMEDSImpl_AttributeParameter* Set (const DF_Label& L);
00066       
00067   void SetInt(const std::string& theID, const int& theValue);
00068   int GetInt(const std::string& theID);
00069           
00070   void SetReal(const std::string& theID, const double& theValue);
00071   double GetReal(const std::string& theID);
00072               
00073   void SetString(const std::string& theID, const std::string& theValue);
00074   std::string GetString(const std::string& theID);
00075                   
00076   void SetBool(const std::string& theID, const bool& theValue);
00077   bool GetBool(const std::string& theID);
00078                       
00079   void SetRealArray(const std::string& theID, const std::vector<double>& theArray);
00080   std::vector<double> GetRealArray(const std::string& theID);
00081                           
00082   void SetIntArray(const std::string& theID, const std::vector<int>& theArray);
00083   std::vector<int> GetIntArray(const std::string& theID);
00084                               
00085   void SetStrArray(const std::string& theID, const std::vector<std::string>& theArray);
00086   std::vector<std::string> GetStrArray(const std::string& theID);
00087                                   
00088   bool IsSet(const std::string& theID, const Parameter_Types theType);
00089  
00090   bool RemoveID(const std::string& theID, const Parameter_Types theType);
00091                       
00092   SALOMEDSImpl_AttributeParameter* GetFather();
00093   bool HasFather();
00094   bool IsRoot();
00095                                             
00096   std::vector<std::string> GetIDs(const Parameter_Types theType);
00097                                               
00098   void Clear();
00099                                                 
00100   virtual std::string Save();
00101   virtual void Load(const std::string& theValue);
00102                                                     
00103   const std::string& ID() const;
00104   void Restore(DF_Attribute* with) ;
00105   DF_Attribute* NewEmpty() const;
00106   void Paste(DF_Attribute* into);
00107                                                             
00108   ~SALOMEDSImpl_AttributeParameter() {}
00109 };
00110 
00111 #endif