diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/sampleProjects/AndroidManifestWriter.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/sampleProjects/AndroidManifestWriter.java | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/sampleProjects/AndroidManifestWriter.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/sampleProjects/AndroidManifestWriter.java deleted file mode 100644 index 141e7e000..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/sampleProjects/AndroidManifestWriter.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php - * - * 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.ide.eclipse.tests.functests.sampleProjects; - -import com.android.SdkConstants; -import com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper; -import com.android.xml.AndroidManifest; - -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import java.io.File; -import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Result; -import javax.xml.transform.Source; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -/** - * Helper class for modifying an AndroidManifest. - * <p/> - * TODO: consider merging this with AndroidManifestParser. - */ -class AndroidManifestWriter { - - private static final Logger sLogger = Logger.getLogger(AndroidManifestWriter.class.getName()); - - private final Document mDoc; - private final String mOsManifestFilePath; - - private AndroidManifestWriter(Document doc, String osManifestFilePath) { - mDoc = doc; - mOsManifestFilePath = osManifestFilePath; - } - - /** - * Sets the minimum SDK version for this manifest - * @param minSdkVersion - the minimim sdk version to use - * @returns <code>true</code> on success, false otherwise - */ - public boolean setMinSdkVersion(String minSdkVersion) { - Element usesSdkElement = null; - NodeList nodeList = mDoc.getElementsByTagName(AndroidManifest.NODE_USES_SDK); - if (nodeList.getLength() > 0) { - usesSdkElement = (Element) nodeList.item(0); - } else { - usesSdkElement = mDoc.createElement(AndroidManifest.NODE_USES_SDK); - mDoc.getDocumentElement().appendChild(usesSdkElement); - } - Attr minSdkAttr = mDoc.createAttributeNS(SdkConstants.NS_RESOURCES, - AndroidManifest.ATTRIBUTE_MIN_SDK_VERSION); - String prefix = mDoc.lookupPrefix(SdkConstants.NS_RESOURCES); - minSdkAttr.setPrefix(prefix); - minSdkAttr.setValue(minSdkVersion); - usesSdkElement.setAttributeNodeNS(minSdkAttr); - return saveXmlToFile(); - } - - private boolean saveXmlToFile() { - try { - // Prepare the DOM document for writing - Source source = new DOMSource(mDoc); - - // Prepare the output file - File file = new File(mOsManifestFilePath); - Result result = new StreamResult(file); - - // Write the DOM document to the file - Transformer xformer = TransformerFactory.newInstance().newTransformer(); - xformer.transform(source, result); - } catch (TransformerConfigurationException e) { - sLogger.log(Level.SEVERE, "Failed to write xml file", e); - return false; - } catch (TransformerException e) { - sLogger.log(Level.SEVERE, "Failed to write xml file", e); - return false; - } - return true; - } - - /** - * Parses the manifest file, and collects data. - * - * @param osManifestFilePath The OS path of the manifest file to parse. - * @return an {@link AndroidManifestHelper} or null if parsing failed - */ - public static AndroidManifestWriter parse(String osManifestFilePath) { - try { - DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); - docFactory.setNamespaceAware(true); - DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); - Document doc = docBuilder.parse(osManifestFilePath); - return new AndroidManifestWriter(doc, osManifestFilePath); - } catch (ParserConfigurationException e) { - sLogger.log(Level.SEVERE, "Error parsing file", e); - return null; - } catch (SAXException e) { - sLogger.log(Level.SEVERE, "Error parsing file", e); - return null; - } catch (IOException e) { - sLogger.log(Level.SEVERE, "Error parsing file", e); - return null; - } - } -} |