// Copyright 2008, Google Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // 2. 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. // 3. Neither the name of Google Inc. nor the names of its contributors may be // used to endorse or promote products derived from this software without // specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // This file contains the declaration of the elements. // Note, only a subset of XAL using these elements is implemented here. // However, note that the normal unknown/misplaced element handling of libkml // is employed thus all of XAL is preserved on parse and emitted on // serialization. The portion implemented here pertains to programmatic // dom access. // // xAL complex elements: // // // // // // // // // xAL simple elements: // // // // // // // #ifndef KML_DOM_XAL_H__ #define KML_DOM_XAL_H__ #include "kml/dom/element.h" #include "kml/base/attributes.h" namespace kmldom { // class XalAddressDetails : public BasicElement { public: virtual ~XalAddressDetails() {} // const XalCountryPtr& get_country() const { return country_; } bool has_country() const { return country_ != NULL; } void set_country(const XalCountryPtr& country) { SetComplexChild(country, &country_); } void clear_country() { set_country(NULL); } private: XalAddressDetails(); XalCountryPtr country_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; // class XalAdministrativeArea : public BasicElement { public: virtual ~XalAdministrativeArea() {} // const string& get_administrativeareaname() const { return administrativeareaname_; } bool has_administrativeareaname() const { return has_administrativeareaname_; } void set_administrativeareaname(const string& value) { administrativeareaname_ = value; has_administrativeareaname_ = true; } void clear_administrativeareaname() { administrativeareaname_.clear(); has_administrativeareaname_ = false; } // const XalLocalityPtr& get_locality() const { return locality_; } bool has_locality() const { return locality_ != NULL; } void set_locality(const XalLocalityPtr& locality) { SetComplexChild(locality, &locality_); } void clear_locality() { set_locality(NULL); } // const XalSubAdministrativeAreaPtr& get_subadministrativearea() const { return subadministrativearea_; } bool has_subadministrativearea() const { return subadministrativearea_ != NULL; } void set_subadministrativearea( const XalSubAdministrativeAreaPtr& subadministrativearea) { SetComplexChild(subadministrativearea, &subadministrativearea_); } void clear_subadministrativearea() { set_subadministrativearea(NULL); } private: XalAdministrativeArea(); bool has_administrativeareaname_; string administrativeareaname_; XalLocalityPtr locality_; XalSubAdministrativeAreaPtr subadministrativearea_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; // class XalCountry : public BasicElement { public: virtual ~XalCountry() {} // , ISO 3166-1 const string& get_countrynamecode() const { return countrynamecode_; } bool has_countrynamecode() const { return has_countrynamecode_; } void set_countrynamecode(const string& value) { countrynamecode_ = value; has_countrynamecode_ = true; } void clear_countrynamecode() { countrynamecode_.clear(); has_countrynamecode_ = false; } // const XalAdministrativeAreaPtr& get_administrativearea() const { return administrativearea_; } bool has_administrativearea() const { return administrativearea_ != NULL; } void set_administrativearea( const XalAdministrativeAreaPtr& administrativearea) { SetComplexChild(administrativearea, &administrativearea_); } void clear_administrativearea() { set_administrativearea(NULL); } private: XalCountry(); bool has_countrynamecode_; string countrynamecode_; XalAdministrativeAreaPtr administrativearea_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; LIBKML_DISALLOW_EVIL_CONSTRUCTORS(XalCountry); }; // class XalLocality : public BasicElement { public: virtual ~XalLocality() {} // const string& get_localityname() const { return localityname_; } bool has_localityname() const { return has_localityname_; } void set_localityname(const string& value) { localityname_ = value; has_localityname_ = true; } void clear_localityname() { localityname_.clear(); has_localityname_ = false; } // const XalThoroughfarePtr& get_thoroughfare() const { return thoroughfare_; } bool has_thoroughfare() const { return thoroughfare_ != NULL; } void set_thoroughfare(const XalThoroughfarePtr& thoroughfare) { SetComplexChild(thoroughfare, &thoroughfare_); } void clear_thoroughfare() { set_thoroughfare(NULL); } // const XalPostalCodePtr& get_postalcode() const { return postalcode_; } bool has_postalcode() const { return postalcode_ != NULL; } void set_postalcode(const XalPostalCodePtr& postalcode) { SetComplexChild(postalcode, &postalcode_); } void clear_postalcode() { set_postalcode(NULL); } private: XalLocality(); bool has_localityname_; string localityname_; XalThoroughfarePtr thoroughfare_; XalPostalCodePtr postalcode_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; // class XalPostalCode : public BasicElement { public: virtual ~XalPostalCode() {} // const string& get_postalcodenumber() const { return postalcodenumber_; } bool has_postalcodenumber() const { return has_postalcodenumber_; } void set_postalcodenumber(const string& value) { postalcodenumber_ = value; has_postalcodenumber_ = true; } void clear_postalcodenumber() { postalcodenumber_.clear(); has_postalcodenumber_ = false; } private: XalPostalCode(); bool has_postalcodenumber_; string postalcodenumber_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; // class XalSubAdministrativeArea : public BasicElement { public: virtual ~XalSubAdministrativeArea() {} // const string& get_subadministrativeareaname() const { return subadministrativeareaname_; } bool has_subadministrativeareaname() const { return has_subadministrativeareaname_; } void set_subadministrativeareaname(const string& value) { subadministrativeareaname_ = value; has_subadministrativeareaname_ = true; } void clear_subadministrativeareaname() { subadministrativeareaname_.clear(); has_subadministrativeareaname_ = false; } // const XalLocalityPtr& get_locality() const { return locality_; } bool has_locality() const { return locality_ != NULL; } void set_locality(const XalLocalityPtr& locality) { SetComplexChild(locality, &locality_); } void clear_locality() { set_locality(NULL); } private: XalSubAdministrativeArea(); bool has_subadministrativeareaname_; string subadministrativeareaname_; XalLocalityPtr locality_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; // class XalThoroughfare : public BasicElement { public: virtual ~XalThoroughfare() {} // const string& get_thoroughfarename() const { return thoroughfarename_; } bool has_thoroughfarename() const { return has_thoroughfarename_; } void set_thoroughfarename(const string& value) { thoroughfarename_ = value; has_thoroughfarename_ = true; } void clear_thoroughfarename() { thoroughfarename_.clear(); has_thoroughfarename_ = false; } // const string& get_thoroughfarenumber() const { return thoroughfarenumber_; } bool has_thoroughfarenumber() const { return has_thoroughfarenumber_; } void set_thoroughfarenumber(const string& value) { thoroughfarenumber_ = value; has_thoroughfarenumber_ = true; } void clear_thoroughfarenumber() { thoroughfarenumber_.clear(); has_thoroughfarenumber_ = false; } private: XalThoroughfare(); bool has_thoroughfarename_; string thoroughfarename_; bool has_thoroughfarenumber_; string thoroughfarenumber_; friend class KmlFactory; friend class KmlHandler; virtual void AddElement(const ElementPtr& element); friend class Serializer; virtual void Serialize(Serializer& serializer) const; }; } // end namespace kmldom #endif // KML_DOM_XAL_H__