diff options
author | 2012-05-07 17:34:08 -0700 | |
---|---|---|
committer | 2012-05-07 17:34:08 -0700 | |
commit | 436bbd1a6c227148c294117e725e03be75e01ebf (patch) | |
tree | c0312cb3d52d2043e993eab54f6093f745e705db /tools/localize/ValuesFile.cpp | |
parent | 476b03b0c0d5cae4d1b114c6f80858d59ba36cad (diff) |
The 'localize' tool is dead.
Change-Id: I6486e50fd1d2f82dd040371a308a2a756beadb64
Diffstat (limited to 'tools/localize/ValuesFile.cpp')
-rw-r--r-- | tools/localize/ValuesFile.cpp | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/tools/localize/ValuesFile.cpp b/tools/localize/ValuesFile.cpp deleted file mode 100644 index bd6f494d74e5..000000000000 --- a/tools/localize/ValuesFile.cpp +++ /dev/null @@ -1,266 +0,0 @@ -#include "ValuesFile.h" - -#include "XMLHandler.h" - -#include <algorithm> -#include <fcntl.h> -#include <expat.h> -#include <unistd.h> -#include <errno.h> - -using namespace std; - -const char* const ANDROID_XMLNS = "http://schemas.android.com/apk/res/android"; -const char* const XLIFF_XMLNS = "urn:oasis:names:tc:xliff:document:1.2"; - -const char *const NS_MAP[] = { - "android", ANDROID_XMLNS, - "xliff", XLIFF_XMLNS, - NULL, NULL -}; - -const XMLNamespaceMap ANDROID_NAMESPACES(NS_MAP); - - -// ===================================================================================== -class ArrayHandler : public XMLHandler -{ -public: - ArrayHandler(ValuesFile* vf, int version, const string& versionString, const string& id); - - virtual int OnStartElement(const SourcePos& pos, const string& ns, const string& name, - const vector<XMLAttribute>& attrs, XMLHandler** next); - virtual int OnText(const SourcePos& pos, const string& text); - virtual int OnComment(const SourcePos& pos, const string& text); - -private: - ValuesFile* m_vf; - int m_version; - int m_index; - string m_versionString; - string m_id; - string m_comment; -}; - -ArrayHandler::ArrayHandler(ValuesFile* vf, int version, const string& versionString, - const string& id) - :m_vf(vf), - m_version(version), - m_index(0), - m_versionString(versionString), - m_id(id) -{ -} - -int -ArrayHandler::OnStartElement(const SourcePos& pos, const string& ns, const string& name, - const vector<XMLAttribute>& attrs, XMLHandler** next) -{ - if (ns == "" && name == "item") { - XMLNode* node = XMLNode::NewElement(pos, ns, name, attrs, XMLNode::EXACT); - m_vf->AddString(StringResource(pos, pos.file, m_vf->GetConfiguration(), - m_id, m_index, node, m_version, m_versionString, - trim_string(m_comment))); - *next = new NodeHandler(node, XMLNode::EXACT); - m_index++; - m_comment = ""; - return 0; - } else { - pos.Error("invalid <%s> element inside <array>\n", name.c_str()); - return 1; - } -} - -int -ArrayHandler::OnText(const SourcePos& pos, const string& text) -{ - return 0; -} - -int -ArrayHandler::OnComment(const SourcePos& pos, const string& text) -{ - m_comment += text; - return 0; -} - -// ===================================================================================== -class ValuesHandler : public XMLHandler -{ -public: - ValuesHandler(ValuesFile* vf, int version, const string& versionString); - - virtual int OnStartElement(const SourcePos& pos, const string& ns, const string& name, - const vector<XMLAttribute>& attrs, XMLHandler** next); - virtual int OnText(const SourcePos& pos, const string& text); - virtual int OnComment(const SourcePos& pos, const string& text); - -private: - ValuesFile* m_vf; - int m_version; - string m_versionString; - string m_comment; -}; - -ValuesHandler::ValuesHandler(ValuesFile* vf, int version, const string& versionString) - :m_vf(vf), - m_version(version), - m_versionString(versionString) -{ -} - -int -ValuesHandler::OnStartElement(const SourcePos& pos, const string& ns, const string& name, - const vector<XMLAttribute>& attrs, XMLHandler** next) -{ - if (ns == "" && name == "string") { - string id = XMLAttribute::Find(attrs, "", "name", ""); - XMLNode* node = XMLNode::NewElement(pos, ns, name, attrs, XMLNode::EXACT); - m_vf->AddString(StringResource(pos, pos.file, m_vf->GetConfiguration(), - id, -1, node, m_version, m_versionString, - trim_string(m_comment))); - *next = new NodeHandler(node, XMLNode::EXACT); - } - else if (ns == "" && name == "array") { - string id = XMLAttribute::Find(attrs, "", "name", ""); - *next = new ArrayHandler(m_vf, m_version, m_versionString, id); - } - m_comment = ""; - return 0; -} - -int -ValuesHandler::OnText(const SourcePos& pos, const string& text) -{ - return 0; -} - -int -ValuesHandler::OnComment(const SourcePos& pos, const string& text) -{ - m_comment += text; - return 0; -} - -// ===================================================================================== -ValuesFile::ValuesFile(const Configuration& config) - :m_config(config), - m_strings(), - m_arrays() -{ -} - -ValuesFile::~ValuesFile() -{ -} - -ValuesFile* -ValuesFile::ParseFile(const string& filename, const Configuration& config, - int version, const string& versionString) -{ - ValuesFile* result = new ValuesFile(config); - - TopElementHandler top("", "resources", new ValuesHandler(result, version, versionString)); - XMLHandler::ParseFile(filename, &top); - - return result; -} - -ValuesFile* -ValuesFile::ParseString(const string& filename, const string& text, const Configuration& config, - int version, const string& versionString) -{ - ValuesFile* result = new ValuesFile(config); - - TopElementHandler top("", "resources", new ValuesHandler(result, version, versionString)); - XMLHandler::ParseString(filename, text, &top); - - return result; -} - -const Configuration& -ValuesFile::GetConfiguration() const -{ - return m_config; -} - -void -ValuesFile::AddString(const StringResource& str) -{ - if (str.index < 0) { - m_strings.insert(str); - } else { - m_arrays[str.id].insert(str); - } -} - -set<StringResource> -ValuesFile::GetStrings() const -{ - set<StringResource> result = m_strings; - - for (map<string,set<StringResource> >::const_iterator it = m_arrays.begin(); - it != m_arrays.end(); it++) { - result.insert(it->second.begin(), it->second.end()); - } - - return result; -} - -XMLNode* -ValuesFile::ToXMLNode() const -{ - XMLNode* root; - - // <resources> - { - vector<XMLAttribute> attrs; - ANDROID_NAMESPACES.AddToAttributes(&attrs); - root = XMLNode::NewElement(GENERATED_POS, "", "resources", attrs, XMLNode::PRETTY); - } - - // <array> - for (map<string,set<StringResource> >::const_iterator it = m_arrays.begin(); - it != m_arrays.end(); it++) { - vector<XMLAttribute> arrayAttrs; - arrayAttrs.push_back(XMLAttribute("", "name", it->first)); - const set<StringResource>& items = it->second; - XMLNode* arrayNode = XMLNode::NewElement(items.begin()->pos, "", "array", arrayAttrs, - XMLNode::PRETTY); - root->EditChildren().push_back(arrayNode); - - // <item> - for (set<StringResource>::const_iterator item = items.begin(); - item != items.end(); item++) { - XMLNode* itemNode = item->value->Clone(); - itemNode->SetName("", "item"); - itemNode->EditAttributes().clear(); - arrayNode->EditChildren().push_back(itemNode); - } - } - - // <string> - for (set<StringResource>::const_iterator it=m_strings.begin(); it!=m_strings.end(); it++) { - const StringResource& str = *it; - vector<XMLAttribute> attrs; - XMLNode* strNode = str.value->Clone(); - strNode->SetName("", "string"); - strNode->EditAttributes().clear(); - strNode->EditAttributes().push_back(XMLAttribute("", "name", str.id)); - root->EditChildren().push_back(strNode); - } - - return root; -} - -string -ValuesFile::ToString() const -{ - XMLNode* xml = ToXMLNode(); - string s = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; - s += xml->ToString(ANDROID_NAMESPACES); - delete xml; - s += '\n'; - return s; -} - |