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_FEATUREXMLFILE_H
00036 #define OPENMS_FORMAT_FEATUREXMLFILE_H
00037
00038 #include <OpenMS/KERNEL/FeatureMap.h>
00039 #include <OpenMS/FORMAT/OPTIONS/FeatureFileOptions.h>
00040 #include <OpenMS/FORMAT/XMLFile.h>
00041 #include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>
00042 #include <OpenMS/CONCEPT/ProgressLogger.h>
00043
00044 #include <iostream>
00045
00046 namespace OpenMS
00047 {
00059 class OPENMS_DLLAPI FeatureXMLFile :
00060 protected Internal::XMLHandler,
00061 public Internal::XMLFile,
00062 public ProgressLogger
00063 {
00064
00065 public:
00066
00069
00070 FeatureXMLFile();
00072 ~FeatureXMLFile();
00074
00081 void load(const String & filename, FeatureMap<> & feature_map);
00082
00083 Size loadSize(const String & filename);
00084
00090 void store(const String & filename, const FeatureMap<> & feature_map);
00091
00093 FeatureFileOptions & getOptions();
00094
00096 const FeatureFileOptions & getOptions() const;
00097
00098 protected:
00099
00100
00101 void resetMembers_();
00102
00103
00104 virtual void endElement(const XMLCh * const , const XMLCh * const , const XMLCh * const qname);
00105
00106
00107 virtual void startElement(const XMLCh * const , const XMLCh * const , const XMLCh * const qname, const xercesc::Attributes & attributes);
00108
00109
00110 virtual void characters(const XMLCh * const chars, const XMLSize_t length);
00111
00113 void writeFeature_(const String & filename, std::ostream & os, const Feature & feat, const String & identifier_prefix, UInt64 identifier, UInt indentation_level);
00114
00116 void writePeptideIdentification_(const String & filename, std::ostream & os, const PeptideIdentification & id, const String & tag_name, UInt indentation_level);
00117
00118
00124 void updateCurrentFeature_(bool create);
00125
00129 Int disable_parsing_;
00130
00132 Feature * current_feature_;
00134 FeatureMap<Feature> * map_;
00136 FeatureFileOptions options_;
00138 bool size_only_;
00140 Size expected_size_;
00141
00144 ModelDescription<2> model_desc_;
00145 Param param_;
00146 ConvexHull2D::PointArrayType current_chull_;
00147 DPosition<2> hull_position_;
00149
00151 UInt dim_;
00152
00154 bool in_description_;
00155
00157 Int subordinate_feature_level_;
00158
00160 MetaInfoInterface * last_meta_;
00161
00163 ProteinIdentification prot_id_;
00165 PeptideIdentification pep_id_;
00167 ProteinHit prot_hit_;
00169 PeptideHit pep_hit_;
00171 Map<String, String> proteinid_to_accession_;
00173 Map<String, Size> accession_to_id_;
00175 Map<String, String> identifier_id_;
00177 Map<String, String> id_identifier_;
00179 ProteinIdentification::SearchParameters search_param_;
00180
00181 };
00182
00183 }
00184
00185 #endif // OPENMS_FORMAT_FeatureXMLFile_H