180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2006 The Android Open Source Project 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkXMLParser.h" 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querustatic char const* const gErrorStrings[] = { 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "empty or missing file ", 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "unknown element ", 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "unknown attribute name ", 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "error in attribute value ", 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "duplicate ID ", 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru "unknown error " 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkXMLParserError::SkXMLParserError() : fCode(kNoError), fLineNumber(-1), 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fNativeCode(-1) 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru reset(); 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkXMLParserError::~SkXMLParserError() 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru // need a virtual destructor for our subclasses 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruvoid SkXMLParserError::getErrorString(SkString* str) const 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkASSERT(str); 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkString temp; 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru if (fCode != kNoError) { 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru if ((unsigned)fCode < SK_ARRAY_COUNT(gErrorStrings)) 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru temp.set(gErrorStrings[fCode - 1]); 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru temp.append(fNoun); 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru } else 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkXMLParser::GetNativeErrorString(fNativeCode, &temp); 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru str->append(temp); 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruvoid SkXMLParserError::reset() { 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fCode = kNoError; 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fLineNumber = -1; 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fNativeCode = -1; 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru//////////////// 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkXMLParser::SkXMLParser(SkXMLParserError* parserError) : fParser(NULL), fError(parserError) 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkXMLParser::~SkXMLParser() 5980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::startElement(const char elem[]) 6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return this->onStartElement(elem); 6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::addAttribute(const char name[], const char value[]) 6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return this->onAddAttribute(name, value); 7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 7280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::endElement(const char elem[]) 7380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 7480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return this->onEndElement(elem); 7580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 7680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 7780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::text(const char text[], int len) 7880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru{ 7980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return this->onText(text, len); 8080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 8180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 8280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru//////////////////////////////////////////////////////////////////////////////// 8380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 8480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::onStartElement(const char elem[]) {return false; } 8580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::onAddAttribute(const char name[], const char value[]) {return false; } 8680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::onEndElement(const char elem[]) { return false; } 8780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkXMLParser::onText(const char text[], int len) {return false; } 88