#ifndef VALUES_FILE_H #define VALUES_FILE_H #include "SourcePos.h" #include "Configuration.h" #include "XMLHandler.h" #include "Values.h" #include <string> #include <set> using namespace std; extern const XMLNamespaceMap ANDROID_NAMESPACES; class ValuesFile { public: ValuesFile(const Configuration& config); static ValuesFile* ParseFile(const string& filename, const Configuration& config, int version, const string& versionString); static ValuesFile* ParseString(const string& filename, const string& text, const Configuration& config, int version, const string& versionString); ~ValuesFile(); const Configuration& GetConfiguration() const; void AddString(const StringResource& str); set<StringResource> GetStrings() const; // exports this file as a n XMLNode, you own this object XMLNode* ToXMLNode() const; // writes the ValuesFile out to a string in the canonical format (i.e. writes the contents of // ToXMLNode()). string ToString() const; private: class ParseState; friend class ValuesFile::ParseState; friend class StringHandler; ValuesFile(); Configuration m_config; set<StringResource> m_strings; map<string,set<StringResource> > m_arrays; }; #endif // VALUES_FILE_H