00001 /* 00002 Copyright 2007, 2008, 2009, 2010, 2011 Instituto de Sistemas e Robotica, Instituto Superior Tecnico 00003 00004 This file is part of MeRMaID. 00005 00006 MeRMaID is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU Lesser General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 MeRMaID 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 00014 GNU Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public License 00017 along with MeRMaID. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 00021 00022 /** 00023 * @Filename XmlAttributeVector.hpp 00024 * @Description XmlAttributeVector class definition. 00025 * @Status Implementing 00026 * @Version $Id: XmlAttributeVector.hpp 1 2011-03-04 18:13:18Z jreis $ 00027 * @Maintainer 00028 */ 00029 00030 #ifndef __XML_XMLATTRIBUTEVECTOR_H_ 00031 #define __XML_XMLATTRIBUTEVECTOR_H_ 00032 00033 namespace mermaid 00034 { 00035 namespace support 00036 { 00037 namespace xml 00038 { 00039 class XmlAttributeVector; 00040 } 00041 } 00042 } 00043 00044 #include <string> 00045 #include <vector> 00046 00047 00048 00049 #include "XmlAttribute.hpp" 00050 00051 00052 00053 namespace mermaid 00054 { 00055 namespace support 00056 { 00057 namespace xml 00058 { 00059 using std::string; 00060 using std::vector; 00061 00062 using boost::shared_ptr; 00063 00064 /** 00065 * @Class XmlAttributeVector XmlAttributeVector.hpp "XmlAttributeVector.hpp" 00066 * @Description Class representing an XML Attribute vector. 00067 * @Author Marco Barbosa 00068 */ 00069 class XmlAttributeVector : public vector< shared_ptr<XmlAttribute> > 00070 { 00071 public: 00072 /** 00073 * @Description Generates an XmlAttributeVector that is a subset of 00074 * @Description the current one. The XmlAttributes inside the 00075 * @Description resulting XmlAttributeVector have their name equal 00076 * @Description to the string passed as argument. 00077 * @Argument name The name of the desired XmlAttributes 00078 * @Returns The resulting XmlAttributeVector 00079 */ 00080 XmlAttributeVector getAttributesWithName (string name); 00081 00082 /** 00083 * @Description Gets the first XmlAttribute that has the name 00084 * @Description equal to the string passed as argument. 00085 * @Argument name The name of the desired XmlAttribute 00086 * @Returns The desired XmlAttribute or NULL if it doesn't exist 00087 */ 00088 shared_ptr<XmlAttribute> getFirstAttributeWithName (string name); 00089 }; // class XmlElementVector 00090 } // namespace xml 00091 } // namespace support 00092 } // namespace mermaid 00093 00094 #endif // __XML_XMLELEMENTVECTOR_H_