aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/ExtensionDesc.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/ExtensionDesc.java')
-rw-r--r--netx/net/sourceforge/jnlp/ExtensionDesc.java143
1 files changed, 143 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/ExtensionDesc.java b/netx/net/sourceforge/jnlp/ExtensionDesc.java
new file mode 100644
index 0000000..2202058
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/ExtensionDesc.java
@@ -0,0 +1,143 @@
+// Copyright (C) 2001-2003 Jon A. Maxwell (JAM)
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library 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 for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+package net.sourceforge.jnlp;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
+
+
+/**
+ * The extension element.
+ *
+ * @author <a href="mailto:[email protected]">Jon A. Maxwell (JAM)</a> - initial author
+ * @version $Revision: 1.8 $
+ */
+public class ExtensionDesc {
+
+ /** the extension name */
+ private String name;
+
+ /** the required extension version */
+ private Version version;
+
+ /** the location of the extension JNLP file */
+ private URL location;
+
+ /** the JNLPFile the extension refers to */
+ private JNLPFile file;
+
+ /** map from ext-part to local part */
+ private Map extToPart = new HashMap();
+
+ /** eager ext parts */
+ private List eagerExtParts = new ArrayList();
+
+
+ /**
+ * Create an extention descriptor.
+ *
+ * @param name the extension name
+ * @param version the required version of the extention JNLPFile
+ * @param location the location of the extention JNLP file
+ */
+ public ExtensionDesc(String name, Version version, URL location) {
+ this.name = name;
+ this.version = version;
+ this.location = location;
+ }
+
+ /**
+ * Adds an extension part to be downloaded when the specified
+ * part of the main JNLP file is loaded. The extension part
+ * will be downloaded before the application is launched if the
+ * lazy value is false or the part is empty or null.
+ *
+ * @param extPart the part name in the extension file
+ * @param part the part name in the main file
+ * @param lazy whether to load the part before launching
+ */
+ protected void addPart(String extPart, String part, boolean lazy) {
+ extToPart.put(extPart, part);
+
+ if (!lazy || part == null || part.length() == 0)
+ eagerExtParts.add(extPart);
+ }
+
+ /**
+ * Returns the parts in the extension JNLP file mapped to the
+ * part of the main file.
+ */
+ public String[] getExtensionParts(String thisPart) {
+
+ return null;
+ }
+
+ /**
+ * Returns the name of the extension.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Returns the required version of the extension JNLP file.
+ */
+ public Version getVersion() {
+ return version;
+ }
+
+ /**
+ * Returns the location of the extension JNLP file.
+ */
+ public URL getLocation() {
+ return location;
+ }
+
+ /**
+ * Resolves the extension by creating a JNLPFile from the file
+ * specified by the extension's location property.
+ *
+ * @throws IOException if the extension JNLPFile could not be resolved.
+ * @throws ParseException if the extension JNLPFile could not be
+ * parsed or was not a component or installer descriptor.
+ */
+ public void resolve() throws ParseException, IOException {
+ if (file == null) {
+ file = new JNLPFile(location);
+
+ if (JNLPRuntime.isDebug())
+ System.out.println("Resolve: "+file.getInformation().getTitle());
+
+ // check for it being an extension descriptor
+ if (!file.isComponent() && !file.isInstaller())
+ throw new ParseException(JNLPRuntime.getMessage("JInvalidExtensionDescriptor", new Object[] {name, location} ));
+ }
+
+ }
+
+ /**
+ * Returns a JNLPFile for the extension, or null if the JNLP
+ * file has not been resolved.
+ */
+ public JNLPFile getJNLPFile() {
+ return file;
+ }
+}