--- trunk/OOPSE-4/src/utils/PropertyMap.hpp 2004/10/13 22:28:51 1566 +++ trunk/OOPSE-4/src/utils/PropertyMap.hpp 2005/04/15 22:04:00 2204 @@ -1,26 +1,42 @@ /* - * Copyright (C) 2000-2004 Object Oriented Parallel Simulation Engine (OOPSE) project - * - * Contact: oopse@oopse.org - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 - * of the License, or (at your option) any later version. - * All we ask is that proper credit is given for our work, which includes - * - but is not limited to - adding the above copyright notice to the beginning - * of your source code files, and to any copyright notice that you may distribute - * with programs based on this work. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved. * + * The University of Notre Dame grants you ("Licensee") a + * non-exclusive, royalty free, license to use, modify and + * redistribute this software in source and binary code form, provided + * that the following conditions are met: + * + * 1. Acknowledgement of the program authors must be made in any + * publication of scientific results based in part on use of the + * program. An acceptable form of acknowledgement is citation of + * the article in which the program was described (Matthew + * A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher + * J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented + * Parallel Simulation Engine for Molecular Dynamics," + * J. Comput. Chem. 26, pp. 252-271 (2005)) + * + * 2. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 3. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * This software is provided "AS IS," without a warranty of any + * kind. All express or implied conditions, representations and + * warranties, including any implied warranty of merchantability, + * fitness for a particular purpose or non-infringement, are hereby + * excluded. The University of Notre Dame and its licensors shall not + * be liable for any damages suffered by licensee as a result of + * using, modifying or distributing the software or its + * derivatives. In no event will the University of Notre Dame or its + * licensors be liable for any lost revenue, profit or data, or for + * direct, indirect, special, consequential, incidental or punitive + * damages, however caused and regardless of the theory of liability, + * arising out of the use of or inability to use software, even if the + * University of Notre Dame has been advised of the possibility of + * such damages. */ /** @@ -38,7 +54,7 @@ #include #include -#include +#include namespace oopse{ @@ -47,84 +63,85 @@ namespace oopse{ * PropertyMap class maintains a list of GenericData. Type of Property is actually GenericData. */ class PropertyMap{ - public: - - /** trivial constructor */ - PropertyMap(); + public: - /** - * Virtual Destructor responsible for deleting all of the generc data in PropertyMap - */ - virtual ~PropertyMap(); + /** trivial constructor */ + PropertyMap() {} - /** - * Adds property into property map - * - * @param genData GenericData to be added into PropertyMap - * - * @see #removeProperty - * @see #clearProperties - */ - void addProperty(GenericData* genData); + /** + * Virtual Destructor responsible for deleting all of the generc data in PropertyMap + */ + virtual ~PropertyMap(); - /** - * Removes property from PropertyMap by name - * - * @param propName the name of property to be removed - * - * @see #addProperty - * @see #clearProperties - */ - void removeProperty(std::string& propName); + /** + * Adds property into property map + * + * @param genData GenericData to be added into PropertyMap + * + * @see #removeProperty + * @see #clearProperties + */ + void addProperty(GenericData* genData); - /** - * clear all of the properties - * - * @see #addProperty - * @see #removeProperty - */ - void clearProperties(); + /** + * Removes property from PropertyMap by name + * + * @param propName the name of property to be removed + * + * @see #addProperty + * @see #clearProperties + */ + bool removeProperty(const std::string& propName); - /** - * Returns all names of properties - * - * @return all names of properties - */ - std::vector getPropertyNames(); + /** + * clear all of the properties + * + * @see #addProperty + * @see #removeProperty + */ + void clearProperties(); - /** - * Returns all of the properties in PropertyMap - * - * @return all of the properties in PropertyMap - * - * @see #getPropertyByName - */ - std::vector getProperties(); + /** + * Returns all names of properties + * + * @return all names of properties + */ + std::vector getPropertyNames(); - /** - * Returns property - * - * @param propName name of property - * - * @return a pointer point to property with propName. If no property named propName - * exists, return NULL - * - * @see #getProperties - */ - GenericData* getPropertyByName(std:string& propName); - template T getPropertyByName(std:string& propName); - - protected: - std::map propMap_; + /** + * Returns all of the properties in PropertyMap + * + * @return all of the properties in PropertyMap + * + * @see #getPropertyByName + */ + std::vector getProperties(); - private: + /** + * Returns property + * + * @param propName name of property + * + * @return a pointer point to property with propName. If no property named propName + * exists, return NULL + * + * @see #getProperties + */ + GenericData* getPropertyByName(const std::string& propName); + //template T getPropertyByName(std:std::string& propName); - /** prevent copy constructing */ - PropertyMap(const PropertyMap&); + protected: + std::map propMap_; - /** prevent copy assignment */ - PropertyMap& operator=(const PropertyMap&); + private: + + /** prevent copy constructing */ + PropertyMap(const PropertyMap&); + + /** prevent copy assignment */ + PropertyMap& operator=(const PropertyMap&); }; }// namespace oopse -#endif //UTIL_PROPERTYMAP_HPP \ No newline at end of file + +#endif //UTIL_PROPERTYMAP_HPP