michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #include "SkXMLParser.h" michael@0: michael@0: static char const* const gErrorStrings[] = { michael@0: "empty or missing file ", michael@0: "unknown element ", michael@0: "unknown attribute name ", michael@0: "error in attribute value ", michael@0: "duplicate ID ", michael@0: "unknown error " michael@0: }; michael@0: michael@0: SkXMLParserError::SkXMLParserError() : fCode(kNoError), fLineNumber(-1), michael@0: fNativeCode(-1) michael@0: { michael@0: reset(); michael@0: } michael@0: michael@0: SkXMLParserError::~SkXMLParserError() michael@0: { michael@0: // need a virtual destructor for our subclasses michael@0: } michael@0: michael@0: void SkXMLParserError::getErrorString(SkString* str) const michael@0: { michael@0: SkASSERT(str); michael@0: SkString temp; michael@0: if (fCode != kNoError) { michael@0: if ((unsigned)fCode < SK_ARRAY_COUNT(gErrorStrings)) michael@0: temp.set(gErrorStrings[fCode - 1]); michael@0: temp.append(fNoun); michael@0: } else michael@0: SkXMLParser::GetNativeErrorString(fNativeCode, &temp); michael@0: str->append(temp); michael@0: } michael@0: michael@0: void SkXMLParserError::reset() { michael@0: fCode = kNoError; michael@0: fLineNumber = -1; michael@0: fNativeCode = -1; michael@0: } michael@0: michael@0: michael@0: //////////////// michael@0: michael@0: SkXMLParser::SkXMLParser(SkXMLParserError* parserError) : fParser(NULL), fError(parserError) michael@0: { michael@0: } michael@0: michael@0: SkXMLParser::~SkXMLParser() michael@0: { michael@0: } michael@0: michael@0: bool SkXMLParser::startElement(const char elem[]) michael@0: { michael@0: return this->onStartElement(elem); michael@0: } michael@0: michael@0: bool SkXMLParser::addAttribute(const char name[], const char value[]) michael@0: { michael@0: return this->onAddAttribute(name, value); michael@0: } michael@0: michael@0: bool SkXMLParser::endElement(const char elem[]) michael@0: { michael@0: return this->onEndElement(elem); michael@0: } michael@0: michael@0: bool SkXMLParser::text(const char text[], int len) michael@0: { michael@0: return this->onText(text, len); michael@0: } michael@0: michael@0: //////////////////////////////////////////////////////////////////////////////// michael@0: michael@0: bool SkXMLParser::onStartElement(const char elem[]) {return false; } michael@0: bool SkXMLParser::onAddAttribute(const char name[], const char value[]) {return false; } michael@0: bool SkXMLParser::onEndElement(const char elem[]) { return false; } michael@0: bool SkXMLParser::onText(const char text[], int len) {return false; }