/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ package com.sun.star.script.framework.container; import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.io.IOException; import java.io.ByteArrayInputStream; import java.util.ArrayList; // import javax.xml.parsers.DocumentBuilderFactory; // import javax.xml.parsers.DocumentBuilder; // import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.*; public class DeployedUnoPackagesDB { // File name to be used for parcel descriptor files private static final String PARCEL_DESCRIPTOR_NAME = "unopkg-desc.xml"; // This is the default contents of a parcel descriptor to be used when // creating empty descriptors private static final byte[] EMPTY_DOCUMENT = ("\n" + "\n" + "").getBytes(); private File file = null; private Document document = null; public DeployedUnoPackagesDB() throws IOException { ByteArrayInputStream bis = null; try { bis = new ByteArrayInputStream(EMPTY_DOCUMENT); this.document = XMLParserFactory.getParser().parse(bis); } finally { if (bis != null) bis.close(); } } public DeployedUnoPackagesDB(Document document) { this.document = document; } public DeployedUnoPackagesDB(InputStream is) throws IOException { this(XMLParserFactory.getParser().parse(is)); } public String[] getDeployedPackages( String language ) { ArrayList packageUrls = new ArrayList(4); Element main = document.getDocumentElement(); Element root = null; Element item; int len = 0; NodeList langNodes = null; if ((langNodes = main.getElementsByTagName("language")) != null && (len = langNodes.getLength()) != 0) { for ( int i=0; i= 0; i--) { try { main.removeChild(langNodes.item(i)); } catch (DOMException de) { // ignore } } } } public boolean removePackage( String language, String url ) { Element main = document.getDocumentElement(); Element langNode = null; int len = 0; NodeList langNodes = null; boolean result = false; if ((langNodes = main.getElementsByTagName("language")) != null && (len = langNodes.getLength()) != 0) { for ( int i=0; i