MD_Identification.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/MD_Identification.h
22 
23  \brief Identification information contains information to uniquely identify the data.
24  */
25 
26 #ifndef __TERRALIB_METADATA_INTERNAL_ISO19115_MD_IDENTIFICATION_H
27 #define __TERRALIB_METADATA_INTERNAL_ISO19115_MD_IDENTIFICATION_H
28 
29 // TerraLib
30 #include "../Config.h"
31 #include "CodeList.h"
32 #include "CI_ResponsibleParty.h"
33 
34 // STL
35 #include <string>
36 #include <vector>
37 
38 // Boost
39 #include <boost/noncopyable.hpp>
40 #include <boost/ptr_container/ptr_vector.hpp>
41 namespace te
42 {
43  namespace md
44  {
45  class CI_Citation;
46 
47  /*!
48  \class MD_Identification
49 
50  \brief Identification information contains information to uniquely identify the data.
51 
52  \note It contains only the mandatory elements of core metadata.
53  */
54  class TEMDEXPORT MD_Identification : public boost::noncopyable
55  {
56  public:
57 
58  /*!
59  \brief Constructor.
60  \param citation Pointer to the citation to the resource. Class takes ownership. Do not pass null.
61  \param abstract Brief narrative summary of the resource.
62  \param status Code that represents the development phase of the resource.
63  */
64  MD_Identification(CI_Citation* citation, const std::string abstract, MD_ProgressCode status);
65 
66  //! Destructor.
67  virtual ~MD_Identification();
68 
69  //! Returns the citation for the metadata.
70  const CI_Citation* getCitation() const;
71 
72  //! Returns the resource abstract.
73  const std::string& getAbstract() const;
74 
75  //! Returns the resource status code.
76  te::md::MD_ProgressCode getStatus() const;
77 
78  /*!
79  \brief Adds a point of contact to the resource.
80  \param poc Pointer to a responsible party. Class takes pointer ownership. Do not pass null.
81  */
82  void addPointOfContact(CI_ResponsibleParty* p);
83 
84  //! Returns the resource points of contact.
85  const boost::ptr_vector<CI_ResponsibleParty>& getPointsOfContact() const;
86 
87  //! Gets a copy of this object.
88  virtual MD_Identification* clone() const;
89 
90  protected:
92  std::string m_abstract;
94  boost::ptr_vector<CI_ResponsibleParty> m_poc;
95  };
96 
97  } // end namespace md
98 } // end namespace te
99 
100 #endif // __TERRALIB_METADATA_INTERNAL_ISO19115_MD_IDENTIFICATION_H
101 
te::md::MD_ProgressCode m_status
boost::ptr_vector< CI_ResponsibleParty > m_poc
#define TEMDEXPORT
Definition: Config.h:61
Provides a standardized method for citing a resource (dataset, feature, source, publication, etc.)
Definition: CI_Citation.h:53
URI C++ Library.
MD_ProgressCode
status of the dataset or progress of a review
Definition: CodeList.h:459
Contains the identify of person(s), and/or position, and/or organization(s) associated with the resou...
Identification information contains information to uniquely identify the data.