diff options
Diffstat (limited to 'anttargetprint/src/com')
-rw-r--r-- | anttargetprint/src/com/android/anttargetprint/BuildXmlHandler.java | 108 | ||||
-rw-r--r-- | anttargetprint/src/com/android/anttargetprint/Main.java | 61 |
2 files changed, 0 insertions, 169 deletions
diff --git a/anttargetprint/src/com/android/anttargetprint/BuildXmlHandler.java b/anttargetprint/src/com/android/anttargetprint/BuildXmlHandler.java deleted file mode 100644 index e9bc4f3..0000000 --- a/anttargetprint/src/com/android/anttargetprint/BuildXmlHandler.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2012 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. - */ - -package com.android.anttargetprint; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -public class BuildXmlHandler extends DefaultHandler { - - private Map<String, String> mTargets = new HashMap<String, String>(); - private int mLevel = 0; - - @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) - throws SAXException { - - mLevel++; - - if (mLevel == 2 && "target".equals(qName)) { - String name = attributes.getValue("name"); - String depends = attributes.getValue("depends"); - - if (name != null) { - if (depends == null) { - depends = ""; - } - - mTargets.put(name, depends); - } - } - - super.startElement(uri, localName, qName, attributes); - } - - @Override - public void endElement(String uri, String localName, String qName) throws SAXException { - mLevel--; - super.endElement(uri, localName, qName); - } - - Map<String, List<String>> processTargets() { - HashMap<String, List<String>> result = new HashMap<String, List<String>>(); - - for (Entry<String, String> entry : mTargets.entrySet()) { - process(entry.getKey(), entry.getValue(), result); - } - - return result; - } - - private List<String> process(String targetName, String targetDepends, - Map<String, List<String>> resultMap) { - - // first check if this was already processed. - List<String> resultList = resultMap.get(targetName); - if (resultList != null) { - return resultList; - } - - resultList = new ArrayList<String>(); - - if (targetDepends.length() > 0) { - String[] dependencies = targetDepends.split(","); - - for (String dependency : dependencies) { - String dependencyTrim = dependency.trim(); - // get all the dependencies for this targets. - List<String> dependencyList = resultMap.get(dependencyTrim); - if (dependencyList == null) { - dependencyList = process(dependencyTrim, mTargets.get(dependencyTrim), - resultMap); - } - - // add those to the new result list - resultList.addAll(dependencyList); - - // and add this dependency as well - resultList.add(dependencyTrim); - } - } - - resultMap.put(targetName, resultList); - - return resultList; - } - -} diff --git a/anttargetprint/src/com/android/anttargetprint/Main.java b/anttargetprint/src/com/android/anttargetprint/Main.java deleted file mode 100644 index e270d97..0000000 --- a/anttargetprint/src/com/android/anttargetprint/Main.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2012 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. - */ - -package com.android.anttargetprint; - -import java.io.File; -import java.util.List; -import java.util.Map.Entry; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - - -public class Main { - - /** - * @param args - */ - public static void main(String[] args) { - - if (args.length != 1) { - System.err.println("USAGE: <prog> [FILE]"); - System.exit(1); - } - - try { - SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); - BuildXmlHandler handler = new BuildXmlHandler(); - parser.parse(new File(args[0]), handler); - - for (Entry<String, List<String>> entry : handler.processTargets().entrySet()) { - String name = entry.getKey(); - if (name.charAt(0) != '-') { - System.out.print(entry.getKey()); - System.out.print(" : "); - for (String v : entry.getValue()) { - System.out.print(v); - System.out.print(" > "); - } - System.out.println(); - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - } -} |