00001 /* 00002 * wsdlpull - A C++ parser for WSDL (Web services description language) 00003 * Copyright (C) 2005-2007 Vivek Krishna 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Library General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Library General Public 00016 * License along with this library; if not, write to the Free 00017 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 * 00019 */ 00020 00021 #ifndef ATTRIBUTEGROUP_H 00022 00023 #define ATTRIBUTEGROUP_H 00024 // ********************************************************************* 00025 // Include files: 00026 // ********************************************************************* 00027 #include <list> 00028 #include "xmlpull/wsdlpull_export.h" 00029 #include "schemaparser/Schema.h" 00030 #include "schemaparser/Attribute.h" 00031 00032 namespace Schema { 00033 class WSDLPULL_EXPORT AttributeGroup 00034 { 00035 public: 00036 AttributeGroup(); 00037 AttributeGroup(const std::string & n); 00038 void addAttribute(const Attribute& a); 00039 std::string getName()const; 00040 std::list<Attribute>::iterator begin(); 00041 std::list<Attribute>::iterator end(); 00042 00043 private: 00044 std::list<Attribute> att_list; 00045 std::string name; 00046 00047 }; 00048 00049 inline 00050 AttributeGroup::AttributeGroup(const std::string & n) 00051 :name(n) 00052 { 00053 att_list.clear(); 00054 } 00055 00056 inline 00057 void 00058 AttributeGroup::addAttribute(const Attribute& a) 00059 { 00060 att_list.push_back(a); 00061 } 00062 00063 inline 00064 std::list<Attribute>::iterator 00065 AttributeGroup::begin() 00066 { 00067 return att_list.begin(); 00068 } 00069 00070 inline 00071 std::list<Attribute>::iterator 00072 AttributeGroup::end() 00073 { 00074 return att_list.end(); 00075 } 00076 00077 inline 00078 std::string 00079 AttributeGroup::getName()const 00080 { 00081 return name; 00082 } 00083 } 00084 #endif // ATTRIBUTEGROUP_H