public final class PreferredResources extends Object
net.jini.loader.pref.PreferredClassProvider
Preferred resources instances hold preferred list expression data
and the preferred state for the resources contained in a given
preferred class loader.Modifier and Type | Field and Description |
---|---|
private Map |
completeNamePrefs |
private Boolean |
defaultPreference
default preference setting
|
private static String |
HEADER_MAJOR_VERSION |
private static String |
HEADER_MINOR_VERSION |
private static String |
HEADER_TITLE
string that starts preference specification headers
|
private boolean |
isEmpty
flag to signal if this preference object is empty
|
static int |
NAME_NO_PREFERENCE
Constant value that indicates that there is no preference value
for a given name.
|
static int |
NAME_NOT_PREFERRED
Constant value that indicates that the resource for a given
name is known to be not preferred.
|
static int |
NAME_PREFERRED
Constant value that indicates that a given name is preferred.
|
static int |
NAME_PREFERRED_RESOURCE_EXISTS
Constant value that indicates that a given resource is
preferred.
|
private static String |
NAME_PREFIX |
private Map |
namespacePrefs |
private Map |
packagePrefs |
private static String |
PREF_PREFIX
preference syntax keywords
|
Constructor and Description |
---|
PreferredResources(InputStream in)
Create a preference object from a stream of formatted
preference syntax.
|
Modifier and Type | Method and Description |
---|---|
private Integer |
getClassNameState(String name)
Returns the preference state for a given name (as is done in
getNonclassNameState) but also interprets the notation for
inner classes as a wild card so that the preference value for a
container class propagates to the classes it contains.
|
Boolean |
getDefaultPreference()
Returns the preference setting that will be applied to names
which have no explicit preference setting in contained
preference settings.
|
private Boolean |
getNamespacePreference(String namespace)
Return a Boolean for the most specific namespace expression
which matches
name . null if the name does not
match a namespace preference expression. |
int |
getNameState(String name,
boolean isClass)
Searches the preference maps to determine the preference state
of the named resource.
|
Boolean |
getWildcardPreference(String name)
Return the boolean value of the most specific wild card
(package and namespace) expression which matches
name . |
private void |
mapPut(Map map,
String name,
Object preference)
Insert a preference expression and value into a given map.
|
private void |
read(InputStream in)
Read and parse preference information from the parameter input
stream
in . |
private String |
readLineTrimComments(BufferedReader br)
Reads the next line from the specified BufferedReader, removing
leading and trailing whitespace and comments.
|
void |
setNameState(String name,
int prefState)
Enable MarshalInputStream to optimize preference information:
permits complete name expressions to be added for names that
only match wild-card expressions.
|
void |
write(OutputStream out)
Write the preferences to the specified OutputStream using the
preference list syntax.
|
private void |
writeMap(Map prefs,
Writer out,
String suffix)
Write the contents of the map into
out using the
preference syntax. |
public static final int NAME_NO_PREFERENCE
public static final int NAME_NOT_PREFERRED
public static final int NAME_PREFERRED
public static final int NAME_PREFERRED_RESOURCE_EXISTS
private static final String HEADER_TITLE
private static final String HEADER_MAJOR_VERSION
private static final String HEADER_MINOR_VERSION
private static final String PREF_PREFIX
private static final String NAME_PREFIX
private Map namespacePrefs
private Map packagePrefs
private Map completeNamePrefs
private boolean isEmpty
private Boolean defaultPreference
public PreferredResources(InputStream in) throws IOException
IOException
PreferredResources
private void read(InputStream in) throws IOException
in
. When the method completes, the
preference expression maps contain preference settings for
preference names contained in the input stream.IOException
private String readLineTrimComments(BufferedReader br) throws IOException
IOException
private void mapPut(Map map, String name, Object preference) throws IOException
IOException
public void write(OutputStream out) throws IOException
out
- the stream to which formatted preference information
will be writtenIOException
- if an error occurs while writing to the streamprivate void writeMap(Map prefs, Writer out, String suffix) throws IOException
out
using the
preference syntax.IOException
public Boolean getDefaultPreference()
public void setNameState(String name, int prefState) throws IOException
name
- the name for which preferred state will be setprefState
- the preferred state for the given nameIOException
- if the name length is zero lengthpublic int getNameState(String name, boolean isClass) throws IOException
name
- isClass
- whether the given name
refers to a
class resourceIOException
- if an error occurs getting the state for
the supplied nameprivate Integer getClassNameState(String name) throws IOException
IOException
public Boolean getWildcardPreference(String name)
name
. Package preferences are always more
specific than namespace preferences.name
- the resource name to which the returned boolean
value will applyBoolean.TRUE/code> if name
is
preferred. Boolean.FALSE
is it is
not. null
if there is no wildcard preference for
the name.
Copyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.