blob: 752fd78de2c8329629512c6bb3f9a075b72d625c [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001#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