You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
240 lines
6.2 KiB
240 lines
6.2 KiB
/*
|
|
* Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
package javax.management.loading;
|
|
|
|
|
|
// java import
|
|
|
|
import java.net.URL;
|
|
import java.net.MalformedURLException;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* This class represents the contents of the <CODE>MLET</CODE> tag.
|
|
* It can be consulted by a subclass of {@link MLet} that overrides
|
|
* the {@link MLet#check MLet.check} method.
|
|
*
|
|
* @since 1.6
|
|
*/
|
|
public class MLetContent {
|
|
|
|
|
|
/**
|
|
* A map of the attributes of the <CODE>MLET</CODE> tag
|
|
* and their values.
|
|
*/
|
|
private Map<String,String> attributes;
|
|
|
|
/**
|
|
* An ordered list of the TYPE attributes that appeared in nested
|
|
* <PARAM> tags.
|
|
*/
|
|
private List<String> types;
|
|
|
|
/**
|
|
* An ordered list of the VALUE attributes that appeared in nested
|
|
* <PARAM> tags.
|
|
*/
|
|
private List<String> values;
|
|
|
|
/**
|
|
* The MLet text file's base URL.
|
|
*/
|
|
private URL documentURL;
|
|
/**
|
|
* The base URL.
|
|
*/
|
|
private URL baseURL;
|
|
|
|
|
|
/**
|
|
* Creates an <CODE>MLet</CODE> instance initialized with attributes read
|
|
* from an <CODE>MLET</CODE> tag in an MLet text file.
|
|
*
|
|
* @param url The URL of the MLet text file containing the
|
|
* <CODE>MLET</CODE> tag.
|
|
* @param attributes A map of the attributes of the <CODE>MLET</CODE> tag.
|
|
* The keys in this map are the attribute names in lowercase, for
|
|
* example <code>codebase</code>. The values are the associated attribute
|
|
* values.
|
|
* @param types A list of the TYPE attributes that appeared in nested
|
|
* <PARAM> tags.
|
|
* @param values A list of the VALUE attributes that appeared in nested
|
|
* <PARAM> tags.
|
|
*/
|
|
public MLetContent(URL url, Map<String,String> attributes,
|
|
List<String> types, List<String> values) {
|
|
this.documentURL = url;
|
|
this.attributes = Collections.unmodifiableMap(attributes);
|
|
this.types = Collections.unmodifiableList(types);
|
|
this.values = Collections.unmodifiableList(values);
|
|
|
|
// Initialize baseURL
|
|
//
|
|
String att = getParameter("codebase");
|
|
if (att != null) {
|
|
if (!att.endsWith("/")) {
|
|
att += "/";
|
|
}
|
|
try {
|
|
baseURL = new URL(documentURL, att);
|
|
} catch (MalformedURLException e) {
|
|
// OK : Move to next block as baseURL could not be initialized.
|
|
}
|
|
}
|
|
if (baseURL == null) {
|
|
String file = documentURL.getFile();
|
|
int i = file.lastIndexOf('/');
|
|
if (i >= 0 && i < file.length() - 1) {
|
|
try {
|
|
baseURL = new URL(documentURL, file.substring(0, i + 1));
|
|
} catch (MalformedURLException e) {
|
|
// OK : Move to next block as baseURL could not be initialized.
|
|
}
|
|
}
|
|
}
|
|
if (baseURL == null)
|
|
baseURL = documentURL;
|
|
|
|
}
|
|
|
|
// GETTERS AND SETTERS
|
|
//--------------------
|
|
|
|
/**
|
|
* Gets the attributes of the <CODE>MLET</CODE> tag. The keys in
|
|
* the returned map are the attribute names in lowercase, for
|
|
* example <code>codebase</code>. The values are the associated
|
|
* attribute values.
|
|
* @return A map of the attributes of the <CODE>MLET</CODE> tag
|
|
* and their values.
|
|
*/
|
|
public Map<String,String> getAttributes() {
|
|
return attributes;
|
|
}
|
|
|
|
/**
|
|
* Gets the MLet text file's base URL.
|
|
* @return The MLet text file's base URL.
|
|
*/
|
|
public URL getDocumentBase() {
|
|
return documentURL;
|
|
}
|
|
|
|
/**
|
|
* Gets the code base URL.
|
|
* @return The code base URL.
|
|
*/
|
|
public URL getCodeBase() {
|
|
return baseURL;
|
|
}
|
|
|
|
/**
|
|
* Gets the list of <CODE>.jar</CODE> files specified by the <CODE>ARCHIVE</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
* @return A comma-separated list of <CODE>.jar</CODE> file names.
|
|
*/
|
|
public String getJarFiles() {
|
|
return getParameter("archive");
|
|
}
|
|
|
|
/**
|
|
* Gets the value of the <CODE>CODE</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
* @return The value of the <CODE>CODE</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*/
|
|
public String getCode() {
|
|
return getParameter("code");
|
|
}
|
|
|
|
/**
|
|
* Gets the value of the <CODE>OBJECT</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
* @return The value of the <CODE>OBJECT</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*/
|
|
public String getSerializedObject() {
|
|
return getParameter("object");
|
|
}
|
|
|
|
/**
|
|
* Gets the value of the <CODE>NAME</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
* @return The value of the <CODE>NAME</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*/
|
|
public String getName() {
|
|
return getParameter("name");
|
|
}
|
|
|
|
|
|
/**
|
|
* Gets the value of the <CODE>VERSION</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
* @return The value of the <CODE>VERSION</CODE>
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*/
|
|
public String getVersion() {
|
|
return getParameter("version");
|
|
}
|
|
|
|
/**
|
|
* Gets the list of values of the <code>TYPE</code> attribute in
|
|
* each nested <PARAM> tag within the <code>MLET</code>
|
|
* tag.
|
|
* @return the list of types.
|
|
*/
|
|
public List<String> getParameterTypes() {
|
|
return types;
|
|
}
|
|
|
|
/**
|
|
* Gets the list of values of the <code>VALUE</code> attribute in
|
|
* each nested <PARAM> tag within the <code>MLET</code>
|
|
* tag.
|
|
* @return the list of values.
|
|
*/
|
|
public List<String> getParameterValues() {
|
|
return values;
|
|
}
|
|
|
|
/**
|
|
* Gets the value of the specified
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*
|
|
* @param name A string representing the name of the attribute.
|
|
* @return The value of the specified
|
|
* attribute of the <CODE>MLET</CODE> tag.
|
|
*/
|
|
private String getParameter(String name) {
|
|
return attributes.get(name.toLowerCase());
|
|
}
|
|
|
|
}
|