The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 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 | |
| 12 | using namespace std; |
| 13 | |
| 14 | extern const XMLNamespaceMap ANDROID_NAMESPACES; |
| 15 | |
| 16 | class ValuesFile |
| 17 | { |
| 18 | public: |
| 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 | |
| 40 | private: |
| 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 |