aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/JREDesc.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/JREDesc.java')
-rw-r--r--netx/net/sourceforge/jnlp/JREDesc.java165
1 files changed, 165 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/JREDesc.java b/netx/net/sourceforge/jnlp/JREDesc.java
new file mode 100644
index 0000000..69a4c25
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/JREDesc.java
@@ -0,0 +1,165 @@
+// 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 J2SE/Java element.
+ *
+ * @author <a href="mailto:[email protected]">Jon A. Maxwell (JAM)</a> - initial author
+ * @version $Revision: 1.5 $
+ */
+public class JREDesc {
+
+ /** the platform version or the product version if location is not null */
+ private Version version;
+
+ /** the location of a JRE product or null */
+ private URL location;
+
+ /** inital heap size */
+ private String initialHeapSize;
+
+ /** maximum head size */
+ private String maximumHeapSize;
+
+ /** args to pass to the vm */
+ private String vmArgs;
+
+ /** list of ResourceDesc objects */
+ private List resources;
+
+
+ /**
+ * Create a JRE descriptor.
+ *
+ * @param version the platform version or the product version
+ * if location is not null
+ * @param location the location of a JRE product or null
+ * @param initialHeapSize inital heap size
+ * @param maximumHeadSize maximum head size
+ * @param resources list of ResourceDesc objects
+ */
+ public JREDesc(Version version, URL location,
+ String vmArgs, String initialHeapSize,
+ String maximumHeapSize, List resources) throws ParseException {
+ this.version = version;
+ this.location = location;
+ this.vmArgs = vmArgs;
+ checkHeapSize(initialHeapSize);
+ this.initialHeapSize = initialHeapSize;
+ checkHeapSize(maximumHeapSize);
+ this.maximumHeapSize = maximumHeapSize;
+ this.resources = resources;
+ }
+
+ /**
+ * Returns the JRE version. Use isPlatformVersion to
+ * determine if this version corresponds to a platform or
+ * product version.
+ */
+ public Version getVersion() {
+ return version;
+ }
+
+ /**
+ * Returns true if the JRE version is a Java platform version
+ * (java.specification.version property) or false if it is a
+ * product version (java.version property).
+ */
+ public boolean isPlatformVersion() {
+ return getLocation() == null;
+ }
+
+ /**
+ * Returns the JRE version string.
+ */
+ public URL getLocation() {
+ return location;
+ }
+
+ /**
+ * Returns the maximum heap size in bytes.
+ */
+ public String getMaximumHeapSize() {
+ return maximumHeapSize;
+ }
+
+ /**
+ * Returns the initial heap size in bytes.
+ */
+ public String getInitialHeapSize() {
+ return initialHeapSize;
+ }
+
+ /**
+ * Returns the resources defined for this JRE.
+ */
+ public List getResourcesDesc() {
+ return resources;
+ }
+
+ /**
+ * Returns the additional arguments to pass to the Java VM
+ * Can be null
+ */
+ public String getVMArgs() {
+ return vmArgs;
+ }
+
+ /**
+ * Check for valid heap size string
+ * @throws ParseException if heapSize is invalid
+ */
+ static private void checkHeapSize(String heapSize) throws ParseException {
+ // need to implement for completeness even though not used in netx
+ if (heapSize == null) {
+ return;
+ }
+
+ boolean lastCharacterIsDigit = true;
+ // the last character must be 0-9 or k/K/m/M
+ char lastChar = Character.toLowerCase(heapSize.charAt(heapSize.length()-1));
+ if ((lastChar < '0' || lastChar > '9')) {
+ lastCharacterIsDigit = false;
+ if (lastChar != 'k' && lastChar!= 'm' ) {
+ throw new ParseException(JNLPRuntime.getMessage("PBadHeapSize",new Object[] {heapSize}));
+ }
+ }
+
+ int indexOfLastDigit = heapSize.length() - 1;
+ if (!lastCharacterIsDigit) {
+ indexOfLastDigit = indexOfLastDigit - 1;
+ }
+
+ String size = heapSize.substring(0,indexOfLastDigit);
+ try {
+ // check that the number is a number!
+ Integer.valueOf(size);
+ } catch (NumberFormatException numberFormat) {
+ throw new ParseException(JNLPRuntime.getMessage("PBadHeapSize", new Object[] {heapSize}), numberFormat);
+ }
+
+ }
+
+}