ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/utils/PropertyMap.cpp
(Generate patch)

Comparing trunk/OOPSE-4/src/utils/PropertyMap.cpp (file contents):
Revision 1566 by tim, Wed Oct 13 22:28:51 2004 UTC vs.
Revision 1622 by tim, Wed Oct 20 22:54:30 2004 UTC

# Line 22 | Line 22
22   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23   *
24   */
25 <
26 < #include "PropertyMap.hpp"
25 >
26 > #include "utils/PropertyMap.hpp"
27   #include <cassert>
28  
29 + namespace oopse {
30 +
31   PropertyMap::~PropertyMap(){
32    clearProperties();
33   }
34  
35  
36 < PropertyMap::addProperty(GenericData* genData){
37 <  std::map<std::string, GenericData*>::iterator iter;
36 > void PropertyMap::addProperty(GenericData* genData){
37 >    std::map<std::string, GenericData*>::iterator iter;
38  
39 <  assert( genData != NULL);
39 >    iter = propMap_.find(genData->getID());
40  
41 <  iter = propMap_.find(genData->getID());
42 <
43 <  if (iter == propMap_.end()){
44 <    propMap_.insert(make_pair(genData->getID(), genData));
45 <  }
46 <  else
45 <    logger.warn("");
46 <  
41 >    if (iter == propMap_.end()){
42 >        propMap_.insert(make_pair(genData->getID(), genData));
43 >    } else {
44 >        delete iter->second;
45 >        iter->second = genData;
46 >    }
47   }
48  
49 < void PropertyMap::removeProperty(std::string& propName){
49 > bool PropertyMap::removeProperty(const std::string& propName){
50    std::map<std::string, GenericData*>::iterator iter;
51  
52 <  iter = propMap_.find(propName);
52 >    iter = propMap_.find(propName);
53  
54 <  if (iter != propMap.end()){
55 <    delete iter->second;
56 <    propMap_.erase(iter);    
57 <  }
58 <  else
59 <    logger.warn("Can not find property with name: " + propName);
54 >    if (iter != propMap_.end()){
55 >        delete iter->second;
56 >        propMap_.erase(iter);    
57 >        return true;
58 >    } else {
59 >        //logger.warn("Can not find property with name: " + propName);
60 >        return false;
61 >    }
62   }
63  
64   void PropertyMap::clearProperties(){
65 <  std::map<std::string, GenericData*>::iterator iter;
65 >    std::map<std::string, GenericData*>::iterator iter;
66  
67 <  for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
68 <    delete iter->second;
69 <  
70 <  propMap_.clear();
67 >    for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
68 >        delete iter->second;
69 >
70 >    propMap_.clear();
71   }
72  
73   std::vector<std::string> PropertyMap::getPropertyNames(){
74 <  vector<string> propNames;
75 <  std::map<std::string, GenericData*>::iterator iter;
74 >    std::vector<std::string> propNames;
75 >    std::map<std::string, GenericData*>::iterator iter;
76  
77 <  for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
78 <    propNames.push_back(iter->first);
77 >    for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
78 >        propNames.push_back(iter->first);
79  
80 <  return propNames;
80 >    return propNames;
81   }
82  
83   std::vector<GenericData*> PropertyMap::getProperties(){
84 <  vector<GenericData*> properties;
85 <  std::map<std::string, GenericData*>::iterator iter;
84 >    std::vector<GenericData*> properties;
85 >    std::map<std::string, GenericData*>::iterator iter;
86  
87 <  for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
88 <    properties.push_back(iter->second);
87 >    for (iter = propMap_.begin(); iter != propMap_.end(); ++iter)
88 >        properties.push_back(iter->second);
89  
90 <  return properties;
90 >    return properties;
91   }
92  
93 < GenericData* PropertyMap::getPropertyByName(std:string& propName){
94 <  std::map<std::string, GenericData*>::iterator iter;
93 > GenericData* PropertyMap::getPropertyByName(const std::string& propName){
94 >    std::map<std::string, GenericData*>::iterator iter;
95  
96 <  iter = propMap_.find(propName);
96 >    iter = propMap_.find(propName);
97  
98 <  if (iter != propMap_.end())
99 <    return iter->second;
100 <  else
101 <    return NULL;
102 < }        
98 >    if (iter != propMap_.end())
99 >        return iter->second;
100 >    else
101 >        return NULL;
102 > }
103 >
104 > }//end namepace oopse

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines