ome-xml 5.2.3

OriginalMetadataAnnotation.h
1 /*
2 * #%L
3 * OME-XML C++ library for working with OME-XML metadata structures.
4 * %%
5 * Copyright © 2006 - 2016 Open Microscopy Environment:
6 * - Massachusetts Institute of Technology
7 * - National Institutes of Health
8 * - University of Dundee
9 * - Board of Regents of the University of Wisconsin-Madison
10 * - Glencoe Software, Inc.
11 * %%
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright notice,
16 * this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 * The views and conclusions contained in the software and documentation are
34 * those of the authors and should not be interpreted as representing official
35 * policies, either expressed or implied, of any organization.
36 * #L%
37 */
38
39 #ifndef OME_XML_MODEL_ORIGINALMETADATAANNOTATION_H
40 #define OME_XML_MODEL_ORIGINALMETADATAANNOTATION_H
41
42 #include <string>
43 #include <utility>
44
45 #include <ome/compat/memory.h>
46
47 #include <ome/common/xml/dom/Document.h>
48 #include <ome/common/xml/dom/Element.h>
49 #include <ome/common/xml/dom/Node.h>
50 #include <ome/common/xml/dom/NodeList.h>
51
52 #include <ome/xml/model/XMLAnnotation.h>
53
54 namespace ome
55 {
56 namespace xml
57 {
58 namespace model
59 {
60
61 // Forward declarations.
62 class OMEModel;
63
67 class OriginalMetadataAnnotation : public XMLAnnotation
68 {
69 public:
71 typedef std::pair<std::string, std::string> metadata_type;
72
73 private:
75 metadata_type metadata;
76
77 public:
79 OriginalMetadataAnnotation ();
80
86 OriginalMetadataAnnotation (const OriginalMetadataAnnotation& copy);
87
93 OriginalMetadataAnnotation (const metadata_type& map);
94
105 OriginalMetadataAnnotation (common::xml::dom::Element& element, ::ome::xml::model::OMEModel& model);
106
108 virtual
109 ~OriginalMetadataAnnotation ();
110
111 // Documented in superclass.
112 const std::string&
113 elementName() const;
114
115 // Documented in superclass.
116 bool
117 validElementName(const std::string& name) const;
118
120 virtual void
121 update(const common::xml::dom::Element& element,
122 ::ome::xml::model::OMEModel& model);
123
124 public:
126 bool
127 link (ome::compat::shared_ptr<Reference>& reference,
128 ome::compat::shared_ptr< ::ome::xml::model::OMEModelObject>& object);
129
135 metadata_type&
136 getMetadata ();
137
143 const metadata_type&
144 getMetadata () const;
145
151 void
152 setMetadata (const metadata_type& map);
153
155 virtual common::xml::dom::Element
156 asXMLElement (common::xml::dom::Document& document) const;
157
158 protected:
159 // Documented in base class.
160 virtual common::xml::dom::Element
161 asXMLElementInternal (common::xml::dom::Document& document,
162 common::xml::dom::Element& element) const;
163 };
164
165 }
166 }
167 }
168
169 #endif // OME_XML_MODEL_ORIGINALMETADATAANNOTATION_H
170
171 /*
172 * Local Variables:
173 * mode:C++
174 * End:
175 */
ome::xml::model::OMEModel
OME model interface (abstract top-level container)
Definition: OMEModel.h:62
ome::xml::model::OriginalMetadataAnnotation::OriginalMetadataAnnotation
OriginalMetadataAnnotation()
Default constructor.
Definition: OriginalMetadataAnnotation.cpp:67
ome::xml::model::OriginalMetadataAnnotation
OriginalMetadataAnnotation model object.
Definition: OriginalMetadataAnnotation.h:67
ome::common::xml::dom::Document
ome::xml::model::XMLAnnotation
XMLAnnotation model object.
Definition: XMLAnnotation.h:80
ome::common::xml::dom::Element
ome::xml::model::OriginalMetadataAnnotation::validElementName
bool validElementName(const std::string &name) const
Check if a given element name is valid for processing by this model object.
Definition: OriginalMetadataAnnotation.cpp:109
ome::xml::model::OriginalMetadataAnnotation::asXMLElementInternal
virtual common::xml::dom::Element asXMLElementInternal(common::xml::dom::Document &document, common::xml::dom::Element &element) const
Transform the object hierarchy rooted at this element to XML.
Definition: OriginalMetadataAnnotation.cpp:189
ome::xml::model::OriginalMetadataAnnotation::~OriginalMetadataAnnotation
virtual ~OriginalMetadataAnnotation()
Destructor.
Definition: OriginalMetadataAnnotation.cpp:97
ome::xml::model::OriginalMetadataAnnotation::metadata_type
std::pair< std::string, std::string > metadata_type
Type of original annotation.
Definition: OriginalMetadataAnnotation.h:71
ome
Open Microscopy Environment C++ implementation.
ome::xml::model::OriginalMetadataAnnotation::link
bool link(ome::compat::shared_ptr< Reference > &reference, ome::compat::shared_ptr< ::ome::xml::model::OMEModelObject > &object)
Link a given OME model object to this model object.
Definition: OriginalMetadataAnnotation.cpp:168
memory.h
ome::xml::model::OriginalMetadataAnnotation::update
virtual void update(const common::xml::dom::Element &element, ::ome::xml::model::OMEModel &model)
Update the object hierarchy recursively from an XML DOM tree.
Definition: OriginalMetadataAnnotation.cpp:117
ome::xml::model::OriginalMetadataAnnotation::getMetadata
metadata_type & getMetadata()
Get the key-value pair mappings.
Definition: OriginalMetadataAnnotation.cpp:197
ome::xml::model::OriginalMetadataAnnotation::metadata
metadata_type metadata
Original metadata key-value pair.
Definition: OriginalMetadataAnnotation.h:75
ome::xml::model::OriginalMetadataAnnotation::asXMLElement
virtual common::xml::dom::Element asXMLElement(common::xml::dom::Document &document) const
Transform the object hierarchy rooted at this element to XML.
Definition: OriginalMetadataAnnotation.cpp:182
ome::xml::model::OriginalMetadataAnnotation::setMetadata
void setMetadata(const metadata_type &map)
Set the key-value pair mappings.
Definition: OriginalMetadataAnnotation.cpp:209
ome::xml::model::OriginalMetadataAnnotation::elementName
const std::string & elementName() const
Get the element name of this model object.
Definition: OriginalMetadataAnnotation.cpp:102