1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
// 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.*;
/**
* The JAR element.
*
* @author <a href="mailto:jmaxwell@users.sourceforge.net">Jon A. Maxwell (JAM)</a> - initial author
* @version $Revision: 1.6 $
*/
public class JARDesc {
/** the location of the JAR file */
private URL location;
/** the required JAR versions, or null */
private Version version;
/** the part name */
private String part;
/** whether to load the JAR on demand */
private boolean lazy;
/** whether the JAR contains the main class */
private boolean main;
/** whether the JAR contains native libraries */
private boolean nativeJar;
/** whether the JAR can be cached */
private boolean cacheable;
/**
* Create a JAR descriptor.
*
* @param location the location of the JAR file
* @param version the required JAR versions, or null
* @param part the part name, or null
* @param lazy whether to load the JAR on demand
* @param main whether the JAR contains the main class
* @param nativeJam whether the JAR contains native libraries
*/
public JARDesc(URL location, Version version, String part, boolean lazy, boolean main, boolean nativeJar, boolean cacheable) {
this.location = location;
this.version = version;
this.part = part;
this.lazy = lazy;
this.main = main;
this.nativeJar = nativeJar;
this.cacheable = cacheable;
}
/**
* Returns the URL of the JAR file.
*/
public URL getLocation() {
return location;
}
/**
* Returns the required version of the JAR file.
*/
public Version getVersion() {
return version;
}
/**
* Returns the part name, or null if not specified in the JNLP
* file.
*/
public String getPart() {
return part;
}
/**
* Returns true if the JAR file contains native code
* libraries.
*/
public boolean isNative() {
return nativeJar;
}
// these both are included in case the spec adds a new value,
// where !lazy would no longer imply eager.
/**
* Returns true if the JAR file should be downloaded before
* starting the application.
*/
public boolean isEager() {
return !lazy;
}
/**
* Returns true if the JAR file should be downloaded on demand.
*/
public boolean isLazy() {
return lazy;
}
/**
* Returns true if the JNLP file defined this JAR as containing
* the main class. If no JARs were defined as the main JAR then
* the first JAR should be used to locate the main class.
*
* @see ResourcesDesc#getMainJAR
*/
public boolean isMain() {
return main;
}
/**
* Returns if this jar is cacheable
*
* @return Whether or not this jar is cacheable
*/
public boolean isCacheable() {
return cacheable;
}
}
|