Class Parser
java.lang.Object
net.sourceforge.jnlp.Parser
Contains methods to parse an XML document into a JNLPFile. Implements JNLP
specification version 1.0.
- Version:
- $Revision: 1.13 $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final booleanwhether to allow extensions to the JNLP specificationprivate static final Patternprivate final URLthe base URL that all hrefs are relative toprivate URLthe codebase URLprivate final JNLPFilethe file referenceprivate final URLthe file URLprivate static final Loggerprivate static Stringprivate final XmlNodethe root nodeprivate final VersionStringThe versions of the specification that this JNLP file requires.private final booleanwhether to throw errors on non-fatal errors. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddInfo(InformationDesc info, XmlNode node, String mod, Object value) Adds a key,value pair to the information object.private URLReturns a URL with a trailing / appended to it if there is no trailing slash on the specified URL.(package private) voidMake sure a title and vendor are present and nonempty and localized as best matching as possible for the JVM's current locale.private static voidcheckJreVersionWithSystemProperty(VersionString version, boolean strict) private String(package private) AppletDescgetAppletDesc(XmlNode node) private intgetAppletDescSize(String wh, XmlNode node) (package private) ApplicationDescgetApplicationDesc(ApplicationType applicationType, XmlNode node) private AssociationDescgetAssociation(XmlNode node) (package private) ComponentDescgetComponent(XmlNode parent) getEntryPointDesc(XmlNode parent) Load the entry point descriptor element.private ExtensionDescgetExtension(XmlNode node) Returns the file location.Returns the version of the application being launched, as well as the version of the JNLP file itself.private IconDescprivate static IconKindgetIconKind(XmlNode node) private InformationDescgetInformationDesc(XmlNode node) Returns the information element at the specified node.getInformationDescs(XmlNode parent) Search through the information elements in the order specified in the JNLP file (resp.(package private) InstallerDescgetInstallerDesc(XmlNode node) private JARDescReturns the JAR element at the specified node.private JREDescprivate Locale[]getLocales(XmlNode node) Returns the locales for which the information element should be used.private StringgetMainClass(XmlNode node, boolean required) private MenuDescReturns the menu element at the specified node.private StringgetOptionalMainClass(XmlNode node) private PackageDescgetPackage(XmlNode node) private PropertyDescgetProperty(XmlNode node) private RelatedContentDescgetRelatedContent(XmlNode node) getResources(XmlNode parent, boolean j2se) private ResourcesDescgetResourcesDesc(XmlNode node, boolean j2se) getSecurity(XmlNode parent) private ShortcutDescgetShortcut(XmlNode node) Returns the versions of the specification that this JNLP file requires.(package private) UpdateDescprivate VersionStringgetVersionString(XmlNode node, String attributeName, String defaultValue) private booleanReturns whether the JNLP file requests a trusted execution environment.private String[]splitString(String source) private static inttryRelativeAbsoluteSize(String wh, String readedSize)
-
Field Details
-
LOG
-
MAINCLASS
-
anyWhiteSpace
-
file
the file reference -
root
the root node -
spec
The versions of the specification that this JNLP file requires. The value of the attribute is specified as a version string, see JSR-56, section 3.1 -
base
the base URL that all hrefs are relative to -
codebase
the codebase URL -
fileLocation
the file URL -
strict
private final boolean strictwhether to throw errors on non-fatal errors. -
allowExtensions
private final boolean allowExtensionswhether to allow extensions to the JNLP specification
-
-
Constructor Details
-
Parser
Create a parser for the JNLP file. If the location parameters is not null it is used as the default codebase (does not override value of jnlp element's href attribute).The root node may be normalized as a side effect of this constructor.
- Parameters:
file- the (uninitialized) file referencebase- if codebase is not specified, a default base for relative URLsroot- the root nodesettings- the parser settings to use when parsing the JNLP file- Throws:
ParseException- if the JNLP file is invalid
-
Parser
public Parser(JNLPFile file, URL base, XmlNode root, ParserSettings settings, URL codebase) throws ParseException Create a parser for the JNLP file. If the location parameters is not null it is used as the default codebase (does not override value of jnlp element's href attribute).The root node may be normalized as a side effect of this constructor.
- Parameters:
file- the (uninitialized) file referencebase- if codebase is not specified, a default base for relative URLsroot- the root nodesettings- the parser settings to use when parsing the JNLP filecodebase- codebase to use if we did not parse one from JNLP file.- Throws:
ParseException- if the JNLP file is invalid
-
-
Method Details
-
addSlash
-
getFileVersion
Returns the version of the application being launched, as well as the version of the JNLP file itself.- Returns:
- version of file
-
getFileLocation
-
getCodeBase
- Returns:
- the codebase.
-
getSpecVersion
Returns the versions of the specification that this JNLP file requires. The value of the attribute is specified as a version string, see JSR-56, section 3.1- Returns:
- the specification version.
-
getUpdate
- Throws:
ParseException
-
getResources
- Parameters:
parent- the parent node (either jnlp or j2se)j2se- true if the resources are located under a j2se or java node- Returns:
- all of the ResourcesDesc elements under the specified node (jnlp or j2se).
- Throws:
ParseException- if the JNLP file is invalid
-
getResourcesDesc
- Parameters:
node- the resources nodej2se- true if the resources are located under a j2se or java node- Returns:
- the ResourcesDesc element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
getJRE
- Parameters:
node- the j2se/java node- Returns:
- the JRE element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
checkJreVersionWithSystemProperty
-
getJAR
Returns the JAR element at the specified node.- Parameters:
node- the jar or nativelib node- Throws:
ParseException- if the JNLP file is invalid
-
getExtension
- Parameters:
node- the extension node- Returns:
- the Extension element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
getProperty
- Parameters:
node- the property node- Returns:
- the Property element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
getPackage
- Parameters:
node- the package node- Returns:
- the Package element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
checkForInformation
Make sure a title and vendor are present and nonempty and localized as best matching as possible for the JVM's current locale. Fallback to a generalized title and vendor otherwise. If none is found, throw an exception. Additionally prints homepage, description, title and vendor to stdout if in Debug mode.- Throws:
RequiredElementException
-
getInformationDescs
Search through the information elements in the order specified in the JNLP file (resp. the specified node). For each information element, it checks if the value specified in the locale attribute matches the current locale. If a match is found, the values specified in that information element will be used, possibly overriding values found in previous information elements. Thus, the locale-independent information needs only to be specified once, in the information element without the locale attribute.- Parameters:
parent- the parent node containing the information elements in the order specified in the JNLP file- Returns:
- all of the information elements under the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
getInformationDesc
Returns the information element at the specified node.- Parameters:
node- the node containing the information element as specified in the JNLP file- Returns:
- the information element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
addInfo
Adds a key,value pair to the information object.- Parameters:
info- the information objectnode- node name to be used as the keymod- key name appended with "-"+mod if not nullvalue- the info object to add (icon or string)
-
getIcon
- Parameters:
node- the icon node- Returns:
- the icon element at the specified node.
- Throws:
ParseException- if the JNLP file is invalid
-
getIconKind
-
getSecurity
- Parameters:
parent- the parent node- Returns:
- the security descriptor element. If no security element was specified in the JNLP file then a SecurityDesc with applet permissions is returned.
- Throws:
ParseException- if the JNLP file is invalid
-
isTrustedEnvironment
private boolean isTrustedEnvironment()Returns whether the JNLP file requests a trusted execution environment. -
getEntryPointDesc
Load the entry point descriptor element.- Parameters:
parent- the parent node- Returns:
- the entry point descriptor element, never
null - Throws:
ParseException- if the JNLP file is invalid- See Also:
-
getAppletDesc
- Parameters:
node-- Returns:
- the applet descriptor.
- Throws:
ParseException- if the JNLP file is invalid
-
getAppletDescSize
- Throws:
ParseException
-
tryRelativeAbsoluteSize
-
getApplicationDesc
ApplicationDesc getApplicationDesc(ApplicationType applicationType, XmlNode node) throws ParseException - Parameters:
node-- Returns:
- the application descriptor.
- Throws:
ParseException- if the JNLP file is invalid
-
getComponent
- Parameters:
parent-- Returns:
- the component descriptor.
- Throws:
ParseException
-
getInstallerDesc
- Parameters:
node-- Returns:
- the installer descriptor.
-
getAssociation
- Parameters:
node-- Returns:
- the association descriptor.
- Throws:
ParseException
-
getShortcut
- Returns:
- the shortcut descriptor.
- Throws:
ParseException
-
getMenu
-
getRelatedContent
- Returns:
- the related-content descriptor.
- Throws:
ParseException
-
splitString
-
getLocales
Returns the locales for which the information element should be used. Several locales can be specified, separated with spaces.- Parameters:
node- the node with a locale attribute- Returns:
- the Locale object(s) from a node's locale attribute.
- Throws:
ParseException
-
getVersionString
- Parameters:
node- the nodeattributeName- the attribute namedefaultValue- default if no such attribute- Returns:
- a version-string from the specified attribute and default value.
-
getOptionalMainClass
-
getMainClass
- Throws:
ParseException
-
cleanMainClassAttribute
- Throws:
ParseException
-