Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_FORMAT_HANDLERS_TRAMLHANDLER_H
00036 #define OPENMS_FORMAT_HANDLERS_TRAMLHANDLER_H
00037
00038 #include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>
00039 #include <OpenMS/FORMAT/ControlledVocabulary.h>
00040 #include <OpenMS/ANALYSIS/TARGETED/TargetedExperiment.h>
00041 #include <OpenMS/METADATA/CVTermList.h>
00042 #include <OpenMS/CONCEPT/ProgressLogger.h>
00043
00044 namespace OpenMS
00045 {
00046 namespace Internal
00047 {
00048
00054 class OPENMS_DLLAPI TraMLHandler :
00055 public XMLHandler
00056 {
00057 public:
00058
00059 typedef std::vector<ReactionMonitoringTransition::Product> ProductListType;
00060 typedef std::vector<ReactionMonitoringTransition::Configuration> ConfigurationListType;
00061
00064
00065 TraMLHandler(const TargetedExperiment & exp, const String & filename, const String & version, const ProgressLogger & logger);
00066
00068 TraMLHandler(TargetedExperiment & exp, const String & filename, const String & version, const ProgressLogger & logger);
00069
00071 virtual ~TraMLHandler();
00073
00074
00075
00076 virtual void endElement(const XMLCh * const , const XMLCh * const , const XMLCh * const qname);
00077
00078
00079 virtual void startElement(const XMLCh * const , const XMLCh * const , const XMLCh * const qname, const xercesc::Attributes & attributes);
00080
00081
00082 virtual void characters(const XMLCh * const chars, const XMLSize_t length);
00083
00084
00085 virtual void writeTo(std::ostream & os);
00086
00087 protected:
00088
00090 const ProgressLogger & logger_;
00091
00093 ControlledVocabulary cv_;
00094
00095 String tag_;
00096
00097 TargetedExperiment * exp_;
00098
00099 const TargetedExperiment * cexp_;
00100
00101 TargetedExperiment::Publication actual_publication_;
00102
00103 TargetedExperiment::Contact actual_contact_;
00104
00105 TargetedExperiment::Instrument actual_instrument_;
00106
00107 TargetedExperiment::Prediction actual_prediction_;
00108
00109 Software actual_software_;
00110
00111 TargetedExperiment::Protein actual_protein_;
00112
00113 TargetedExperiment::RetentionTime actual_rt_;
00114
00115 TargetedExperiment::Peptide actual_peptide_;
00116
00117 TargetedExperiment::Compound actual_compound_;
00118
00119 ReactionMonitoringTransition actual_transition_;
00120
00121 IncludeExcludeTarget actual_target_;
00122
00123 CVTermList actual_validation_;
00124
00125 CVTermList actual_interpretation_;
00126
00127 std::vector<ReactionMonitoringTransition::Product> actual_intermediate_products_;
00128
00129 ReactionMonitoringTransition::Product actual_product_;
00130
00131 ReactionMonitoringTransition::Configuration actual_configuration_;
00132
00133 SourceFile actual_sourcefile_;
00134
00136 void handleCVParam_(const String & parent_parent_tag, const String & parent_tag, const CVTerm & cv_term);
00137
00139 void handleUserParam_(const String & parent_parent_tag, const String & parent_tag, const String & name, const String & type, const String & value);
00140
00142 void writeUserParam_(std::ostream & os, const MetaInfoInterface & meta, UInt indent) const;
00143
00144 void writeUserParams_(std::ostream & os, const std::vector<MetaInfoInterface> & meta, UInt indent) const;
00145
00146 void writeCVParams_(std::ostream & os, const CVTermList & cv_terms, UInt indent) const;
00147
00148
00149 void writeTarget_(std::ostream & os, const std::vector<IncludeExcludeTarget>::const_iterator & it) const;
00150
00151 void writeProduct_(std::ostream & os, const std::vector<ReactionMonitoringTransition::Product>::const_iterator & prod_it) const;
00152
00153 void writeConfiguration_(std::ostream & os, const std::vector<ReactionMonitoringTransition::Configuration>::const_iterator & cit) const;
00154
00156 ControlledVocabulary::CVTerm getChildWithName_(const String & parent_accession, const String & name) const;
00157
00159
00160
00161 private:
00162
00163 TraMLHandler();
00164 TraMLHandler(const TraMLHandler & rhs);
00165 TraMLHandler & operator=(const TraMLHandler & rhs);
00166 };
00167 }
00168 }
00169
00170 #endif