1#ifndef VALUES_FILE_H 2#define VALUES_FILE_H 3 4#include "SourcePos.h" 5#include "Configuration.h" 6#include "XMLHandler.h" 7#include "Values.h" 8 9#include <string> 10#include <set> 11 12using namespace std; 13 14extern const XMLNamespaceMap ANDROID_NAMESPACES; 15 16class ValuesFile 17{ 18public: 19 ValuesFile(const Configuration& config); 20 21 static ValuesFile* ParseFile(const string& filename, const Configuration& config, 22 int version, const string& versionString); 23 static ValuesFile* ParseString(const string& filename, const string& text, 24 const Configuration& config, 25 int version, const string& versionString); 26 ~ValuesFile(); 27 28 const Configuration& GetConfiguration() const; 29 30 void AddString(const StringResource& str); 31 set<StringResource> GetStrings() const; 32 33 // exports this file as a n XMLNode, you own this object 34 XMLNode* ToXMLNode() const; 35 36 // writes the ValuesFile out to a string in the canonical format (i.e. writes the contents of 37 // ToXMLNode()). 38 string ToString() const; 39 40private: 41 class ParseState; 42 friend class ValuesFile::ParseState; 43 friend class StringHandler; 44 45 ValuesFile(); 46 47 Configuration m_config; 48 set<StringResource> m_strings; 49 map<string,set<StringResource> > m_arrays; 50}; 51 52#endif // VALUES_FILE_H 53