46 #ifndef OME_XML_MODEL_INSTRUMENT_H
47 #define OME_XML_MODEL_INSTRUMENT_H
57 #include <ome/common/xml/dom/Document.h>
58 #include <ome/common/xml/dom/Element.h>
59 #include <ome/common/xml/dom/Node.h>
60 #include <ome/common/xml/dom/NodeList.h>
62 #include <ome/xml/model/Microscope.h>
63 #include <ome/xml/model/detail/OMEModelObject.h>
90 ome::compat::shared_ptr<Impl>
impl;
121 static ome::compat::shared_ptr< Instrument>
146 link (ome::compat::shared_ptr<Reference>& reference,
147 ome::compat::shared_ptr< ome::xml::model::OMEModelObject>&
object);
163 setID (
const std::string&
id);
170 ome::compat::shared_ptr<ome::xml::model::Microscope>
178 const ome::compat::shared_ptr<ome::xml::model::Microscope>
187 setMicroscope (ome::compat::shared_ptr<ome::xml::model::Microscope>& microscope);
194 std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >::size_type
203 std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >&
212 const std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >&
222 ome::compat::shared_ptr<ome::xml::model::LightSource>&
223 getLightSource (std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >::size_type index);
232 const ome::compat::shared_ptr<ome::xml::model::LightSource>&
233 getLightSource (std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >::size_type index)
const;
243 setLightSource (std::vector<ome::compat::shared_ptr<ome::xml::model::LightSource> >::size_type index,
244 ome::compat::shared_ptr<ome::xml::model::LightSource>& lightSource);
255 addLightSource (ome::compat::shared_ptr<ome::xml::model::LightSource>& lightSource);
267 removeLightSource (ome::compat::shared_ptr<ome::xml::model::LightSource>& lightSource);
274 std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >::size_type
283 std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >&
292 const std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >&
302 ome::compat::shared_ptr<ome::xml::model::Detector>&
303 getDetector (std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >::size_type index);
312 const ome::compat::shared_ptr<ome::xml::model::Detector>&
313 getDetector (std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >::size_type index)
const;
323 setDetector (std::vector<ome::compat::shared_ptr<ome::xml::model::Detector> >::size_type index,
324 ome::compat::shared_ptr<ome::xml::model::Detector>& detector);
335 addDetector (ome::compat::shared_ptr<ome::xml::model::Detector>& detector);
347 removeDetector (ome::compat::shared_ptr<ome::xml::model::Detector>& detector);
354 std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >::size_type
363 std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >&
372 const std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >&
382 ome::compat::shared_ptr<ome::xml::model::Objective>&
383 getObjective (std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >::size_type index);
392 const ome::compat::shared_ptr<ome::xml::model::Objective>&
393 getObjective (std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >::size_type index)
const;
403 setObjective (std::vector<ome::compat::shared_ptr<ome::xml::model::Objective> >::size_type index,
404 ome::compat::shared_ptr<ome::xml::model::Objective>& objective);
415 addObjective (ome::compat::shared_ptr<ome::xml::model::Objective>& objective);
427 removeObjective (ome::compat::shared_ptr<ome::xml::model::Objective>& objective);
434 std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >::size_type
443 std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >&
452 const std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >&
462 ome::compat::shared_ptr<ome::xml::model::FilterSet>&
463 getFilterSet (std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >::size_type index);
472 const ome::compat::shared_ptr<ome::xml::model::FilterSet>&
473 getFilterSet (std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >::size_type index)
const;
483 setFilterSet (std::vector<ome::compat::shared_ptr<ome::xml::model::FilterSet> >::size_type index,
484 ome::compat::shared_ptr<ome::xml::model::FilterSet>& filterSet);
495 addFilterSet (ome::compat::shared_ptr<ome::xml::model::FilterSet>& filterSet);
507 removeFilterSet (ome::compat::shared_ptr<ome::xml::model::FilterSet>& filterSet);
514 std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >::size_type
523 std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >&
532 const std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >&
542 ome::compat::shared_ptr<ome::xml::model::Filter>&
543 getFilter (std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >::size_type index);
552 const ome::compat::shared_ptr<ome::xml::model::Filter>&
553 getFilter (std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >::size_type index)
const;
563 setFilter (std::vector<ome::compat::shared_ptr<ome::xml::model::Filter> >::size_type index,
564 ome::compat::shared_ptr<ome::xml::model::Filter>& filter);
575 addFilter (ome::compat::shared_ptr<ome::xml::model::Filter>& filter);
587 removeFilter (ome::compat::shared_ptr<ome::xml::model::Filter>& filter);
594 std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >::size_type
603 std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >&
612 const std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >&
622 ome::compat::shared_ptr<ome::xml::model::Dichroic>&
623 getDichroic (std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >::size_type index);
632 const ome::compat::shared_ptr<ome::xml::model::Dichroic>&
633 getDichroic (std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >::size_type index)
const;
643 setDichroic (std::vector<ome::compat::shared_ptr<ome::xml::model::Dichroic> >::size_type index,
644 ome::compat::shared_ptr<ome::xml::model::Dichroic>& dichroic);
655 addDichroic (ome::compat::shared_ptr<ome::xml::model::Dichroic>& dichroic);
667 removeDichroic (ome::compat::shared_ptr<ome::xml::model::Dichroic>& dichroic);
692 const ome::compat::weak_ptr<ome::xml::model::Image>&
705 const ome::compat::weak_ptr<ome::xml::model::Image>&
707 const ome::compat::shared_ptr<ome::xml::model::Image>& image_BackReference);
720 linkImage (
const ome::compat::shared_ptr<ome::xml::model::Image>& image_BackReference);
738 unlinkImage (
const ome::compat::shared_ptr<ome::xml::model::Image>& image_BackReference);
762 #endif // OME_XML_MODEL_INSTRUMENT_H
OME model interface (abstract top-level container)
Definition: OMEModel.h:62
void setMicroscope(ome::compat::shared_ptr< ome::xml::model::Microscope > µscope)
Set the Microscope property.
Definition: Instrument.cpp:449
std::vector< ome::compat::shared_ptr< ome::xml::model::Dichroic > >::size_type sizeOfDichroicList() const
Get size of linked Dichroic list.
Definition: Instrument.cpp:746
std::vector< ome::compat::shared_ptr< ome::xml::model::FilterSet > > & getFilterSetList()
Get the FilterSet list.
Definition: Instrument.cpp:636
Instrument model object.
Definition: Instrument.h:85
ome::compat::shared_ptr< Impl > impl
Private implementation details.
Definition: Instrument.h:88
bool linkImage(const ome::compat::shared_ptr< ome::xml::model::Image > &image_BackReference)
Link Image.
Definition: Instrument.cpp:832
std::vector< ome::compat::shared_ptr< ome::xml::model::Objective > >::size_type sizeOfObjectiveList() const
Get size of linked Objective list.
Definition: Instrument.cpp:572
DOM Document wrapper.
Definition: Document.h:83
DOM Element wrapper.
Definition: Element.h:66
virtual ~Instrument()
Destructor.
Definition: Instrument.cpp:215
void removeFilterSet(ome::compat::shared_ptr< ome::xml::model::FilterSet > &filterSet)
Remove FilterSet.
Definition: Instrument.cpp:677
void addDichroic(ome::compat::shared_ptr< ome::xml::model::Dichroic > &dichroic)
Add Dichroic.
Definition: Instrument.cpp:785
std::vector< ome::compat::shared_ptr< ome::xml::model::Filter > > & getFilterList()
Get the Filter list.
Definition: Instrument.cpp:694
void addFilter(ome::compat::shared_ptr< ome::xml::model::Filter > &filter)
Add Filter.
Definition: Instrument.cpp:727
OME model object (concrete implementation).
Definition: OMEModelObject.h:64
void setID(const std::string &id)
Set the ID property.
Definition: Instrument.cpp:428
void removeFilter(ome::compat::shared_ptr< ome::xml::model::Filter > &filter)
Remove Filter.
Definition: Instrument.cpp:735
boost::multi_index_container< Ptr< T >, boost::multi_index::indexed_by< boost::multi_index::random_access<>, boost::multi_index::ordered_unique< boost::multi_index::identity< Ptr< T > >, ome::compat::owner_less< Ptr< T > > > > > type
Multi-index container type.
Definition: OMEModelObject.h:94
void addFilterSet(ome::compat::shared_ptr< ome::xml::model::FilterSet > &filterSet)
Add FilterSet.
Definition: Instrument.cpp:669
std::vector< ome::compat::shared_ptr< ome::xml::model::Filter > >::size_type sizeOfFilterList() const
Get size of linked Filter list.
Definition: Instrument.cpp:688
void addObjective(ome::compat::shared_ptr< ome::xml::model::Objective > &objective)
Add Objective.
Definition: Instrument.cpp:611
std::vector< ome::compat::shared_ptr< ome::xml::model::Dichroic > > & getDichroicList()
Get the Dichroic list.
Definition: Instrument.cpp:752
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: Instrument.cpp:245
std::vector< ome::compat::shared_ptr< ome::xml::model::Detector > >::size_type sizeOfDetectorList() const
Get size of linked Detector list.
Definition: Instrument.cpp:514
bool unlinkImage(const ome::compat::shared_ptr< ome::xml::model::Image > &image_BackReference)
Unlink Image.
Definition: Instrument.cpp:845
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: Instrument.cpp:406
Private implementation details of Instrument model object.
Definition: Instrument.cpp:100
void setDichroic(std::vector< ome::compat::shared_ptr< ome::xml::model::Dichroic > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Dichroic > &dichroic)
Set Dichroic.
Definition: Instrument.cpp:776
std::vector< ome::compat::shared_ptr< ome::xml::model::FilterSet > >::size_type sizeOfFilterSetList() const
Get size of linked FilterSet list.
Definition: Instrument.cpp:630
ome::compat::shared_ptr< ome::xml::model::Objective > & getObjective(std::vector< ome::compat::shared_ptr< ome::xml::model::Objective > >::size_type index)
Get Objective.
Definition: Instrument.cpp:590
virtual common::xml::dom::Element asXMLElement(common::xml::dom::Document &document) const
Transform the object hierarchy rooted at this element to XML.
Definition: Instrument.cpp:862
std::vector< ome::compat::shared_ptr< ome::xml::model::Detector > > & getDetectorList()
Get the Detector list.
Definition: Instrument.cpp:520
std::vector< ome::compat::shared_ptr< ome::xml::model::Objective > > & getObjectiveList()
Get the Objective list.
Definition: Instrument.cpp:578
Multi-index container for efficient ordered insertion and deletion of model object references...
Definition: OMEModelObject.h:85
const std::string & getXMLNamespace() const
Get the XML namespace for this model object.
Definition: Instrument.cpp:1000
ome::compat::shared_ptr< ome::xml::model::FilterSet > & getFilterSet(std::vector< ome::compat::shared_ptr< ome::xml::model::FilterSet > >::size_type index)
Get FilterSet.
Definition: Instrument.cpp:648
Open Microscopy Environment C++ implementation.
Definition: CoreMetadata.cpp:40
void addDetector(ome::compat::shared_ptr< ome::xml::model::Detector > &detector)
Add Detector.
Definition: Instrument.cpp:553
ome::compat::shared_ptr< ome::xml::model::LightSource > & getLightSource(std::vector< ome::compat::shared_ptr< ome::xml::model::LightSource > >::size_type index)
Get LightSource.
Definition: Instrument.cpp:474
void setLightSource(std::vector< ome::compat::shared_ptr< ome::xml::model::LightSource > >::size_type index, ome::compat::shared_ptr< ome::xml::model::LightSource > &lightSource)
Set LightSource.
Definition: Instrument.cpp:486
void removeLightSource(ome::compat::shared_ptr< ome::xml::model::LightSource > &lightSource)
Remove LightSource.
Definition: Instrument.cpp:503
std::vector< ome::compat::shared_ptr< ome::xml::model::LightSource > > & getLightSourceList()
Get the LightSource list.
Definition: Instrument.cpp:462
void removeDetector(ome::compat::shared_ptr< ome::xml::model::Detector > &detector)
Remove Detector.
Definition: Instrument.cpp:561
const std::string & elementName() const
Get the element name of this model object.
Definition: Instrument.cpp:229
ome::compat::shared_ptr< ome::xml::model::Detector > & getDetector(std::vector< ome::compat::shared_ptr< ome::xml::model::Detector > >::size_type index)
Get Detector.
Definition: Instrument.cpp:532
const std::string & getID() const
Get the ID property.
Definition: Instrument.cpp:421
void setFilter(std::vector< ome::compat::shared_ptr< ome::xml::model::Filter > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Filter > &filter)
Set Filter.
Definition: Instrument.cpp:718
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: Instrument.cpp:869
void setObjective(std::vector< ome::compat::shared_ptr< ome::xml::model::Objective > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Objective > &objective)
Set Objective.
Definition: Instrument.cpp:602
const ome::compat::weak_ptr< ome::xml::model::Image > & setLinkedImage(OMEModelObject::indexed_container< ome::xml::model::Image, ome::compat::weak_ptr >::type::size_type index, const ome::compat::shared_ptr< ome::xml::model::Image > &image_BackReference)
Set linked Image.
Definition: Instrument.cpp:822
void setFilterSet(std::vector< ome::compat::shared_ptr< ome::xml::model::FilterSet > >::size_type index, ome::compat::shared_ptr< ome::xml::model::FilterSet > &filterSet)
Set FilterSet.
Definition: Instrument.cpp:660
static ome::compat::shared_ptr< Instrument > create(const common::xml::dom::Element &element, ome::xml::model::OMEModel &model)
Create a Instrument model object from DOM element.
Definition: Instrument.cpp:220
OMEModelObject::indexed_container< ome::xml::model::Image, ome::compat::weak_ptr >::type::size_type sizeOfLinkedImageList() const
Get size of linked Image list.
Definition: Instrument.cpp:804
Instrument()
Default constructor.
Definition: Instrument.cpp:196
void addLightSource(ome::compat::shared_ptr< ome::xml::model::LightSource > &lightSource)
Add LightSource.
Definition: Instrument.cpp:495
void removeObjective(ome::compat::shared_ptr< ome::xml::model::Objective > &objective)
Remove Objective.
Definition: Instrument.cpp:619
std::vector< ome::compat::shared_ptr< ome::xml::model::LightSource > >::size_type sizeOfLightSourceList() const
Get size of linked LightSource list.
Definition: Instrument.cpp:456
ome::compat::shared_ptr< ome::xml::model::Microscope > getMicroscope()
Get the Microscope property.
Definition: Instrument.cpp:435
OMEModelObject::indexed_container< ome::xml::model::Image, ome::compat::weak_ptr >::type getLinkedImageList() const
Get the linked Image list.
Definition: Instrument.cpp:810
void removeDichroic(ome::compat::shared_ptr< ome::xml::model::Dichroic > &dichroic)
Remove Dichroic.
Definition: Instrument.cpp:793
ome::compat::shared_ptr< ome::xml::model::Filter > & getFilter(std::vector< ome::compat::shared_ptr< ome::xml::model::Filter > >::size_type index)
Get Filter.
Definition: Instrument.cpp:706
const ome::compat::weak_ptr< ome::xml::model::Image > & getLinkedImage(OMEModelObject::indexed_container< ome::xml::model::Image, ome::compat::weak_ptr >::type::size_type index) const
Get linked Image.
Definition: Instrument.cpp:816
bool validElementName(const std::string &name) const
Check if a given element name is valid for processing by this model object.
Definition: Instrument.cpp:236
ome::compat::shared_ptr< ome::xml::model::Dichroic > & getDichroic(std::vector< ome::compat::shared_ptr< ome::xml::model::Dichroic > >::size_type index)
Get Dichroic.
Definition: Instrument.cpp:764
Xerces-C modern C++ wrapper.
Definition: Base.h:53
void setDetector(std::vector< ome::compat::shared_ptr< ome::xml::model::Detector > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Detector > &detector)
Set Detector.
Definition: Instrument.cpp:544