CI_Citation.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/metadata/iso19115/CI_Citation.h
22 
23  \brief To support the bibliographic information to reference the resource.
24  */
25 
26 #ifndef __TERRALIB_METADATA_INTERNAL_ISO19115_CI_CITATION_H
27 #define __TERRALIB_METADATA_INTERNAL_ISO19115_CI_CITATION_H
28 
29 // TerraLib
30 #include "../Config.h"
31 #include "CodeList.h"
32 
33 // STL
34 #include <string>
35 #include <vector>
36 
37 // Boost
38 #include <boost/date_time/gregorian/gregorian.hpp>
39 #include <boost/noncopyable.hpp>
40 #include <boost/ptr_container/ptr_vector.hpp>
41 
42 namespace te
43 {
44  namespace md
45  {
46  /*!
47  \class CI_Citation
48 
49  \brief Provides a standardized method for citing a resource (dataset, feature, source, publication, etc.)
50 
51  This class represents only the mandatory elements of core metadata for geographic datasets.
52  */
53  class TEMDEXPORT CI_Citation : public boost::noncopyable
54  {
55  public:
56 
57  /*! Constructor.
58  \param title Name by which the cited resource is known.
59  \param date Reference date for the cited resource.
60  \param datetype Identification of the event used for the temporal aspects in the resource.
61  */
62  CI_Citation(const std::string& title, boost::gregorian::date date, CI_DateTypeCode dateype);
63 
64  /*! Destructor. */
65  ~CI_Citation();
66 
67  /** @name Accessor methods
68  * Methods used to get or set properties.
69  */
70  //@{
71 
72  //! Returns the citation title.
73  const std::string& getTitle() const;
74 
75  //! Returns the citation date.
76  const boost::gregorian::date& getDate() const;
77 
78  //! Returns the citation date type.
79  CI_DateTypeCode getDateType() const;
80 
81  //! Creates a new copy of this object.
82  CI_Citation* clone() const;
83 
84  //@}
85 
86  private:
87 
88  // Mandatory elements from the core metadata for geographic objects
89 
90  std::string m_title; //!< Name by which the cited resource is known.
91  boost::gregorian::date m_date; //!< Reference date for the cited resource.
92  CI_DateTypeCode m_dateType; //!< Identification of the event used for the temporal aspects in the resource.
93 
94  };
95 
96  } // end namespace md
97 } // end namespace te
98 
99 #endif // __TERRALIB_METADATA_INTERNAL_ISO19115_CI_CITATION_H
100 
CI_DateTypeCode m_dateType
Identification of the event used for the temporal aspects in the resource.
Definition: CI_Citation.h:92
#define TEMDEXPORT
Definition: Config.h:61
Provides a standardized method for citing a resource (dataset, feature, source, publication, etc.)
Definition: CI_Citation.h:53
CI_DateTypeCode
Identification of when a given event occurred.
Definition: CodeList.h:44
URI C++ Library.
boost::gregorian::date m_date
Reference date for the cited resource.
Definition: CI_Citation.h:91
std::string m_title
Name by which the cited resource is known.
Definition: CI_Citation.h:90