auto import from //depot/cupcake/@135843
diff --git a/tools/localize/ValuesFile.h b/tools/localize/ValuesFile.h
new file mode 100644
index 0000000..752fd78
--- /dev/null
+++ b/tools/localize/ValuesFile.h
@@ -0,0 +1,52 @@
+#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