diff options
Diffstat (limited to 'tools/aapt2/ManifestParser.cpp')
-rw-r--r-- | tools/aapt2/ManifestParser.cpp | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/tools/aapt2/ManifestParser.cpp b/tools/aapt2/ManifestParser.cpp deleted file mode 100644 index b8f0a430bcee..000000000000 --- a/tools/aapt2/ManifestParser.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "AppInfo.h" -#include "Logger.h" -#include "ManifestParser.h" -#include "Source.h" -#include "XmlPullParser.h" - -#include <string> - -namespace aapt { - -bool ManifestParser::parse(const Source& source, std::shared_ptr<XmlPullParser> parser, - AppInfo* outInfo) { - SourceLogger logger = { source }; - - int depth = 0; - while (XmlPullParser::isGoodEvent(parser->next())) { - XmlPullParser::Event event = parser->getEvent(); - if (event == XmlPullParser::Event::kEndElement) { - depth--; - continue; - } else if (event != XmlPullParser::Event::kStartElement) { - continue; - } - - depth++; - - const std::u16string& element = parser->getElementName(); - if (depth == 1) { - if (element == u"manifest") { - if (!parseManifest(logger, parser, outInfo)) { - return false; - } - } else { - logger.error() - << "unexpected top-level element '" - << element - << "'." - << std::endl; - return false; - } - } else { - XmlPullParser::skipCurrentElement(parser.get()); - } - } - - if (parser->getEvent() == XmlPullParser::Event::kBadDocument) { - logger.error(parser->getLineNumber()) - << "failed to parse manifest: " - << parser->getLastError() - << "." - << std::endl; - return false; - } - return true; -} - -bool ManifestParser::parseManifest(SourceLogger& logger, std::shared_ptr<XmlPullParser> parser, - AppInfo* outInfo) { - auto attrIter = parser->findAttribute(u"", u"package"); - if (attrIter == parser->endAttributes() || attrIter->value.empty()) { - logger.error() << "no 'package' attribute found for element <manifest>." << std::endl; - return false; - } - outInfo->package = attrIter->value; - return true; -} - -} // namespace aapt |