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.
PreferredResouces is thread safe.
Originally from package org.apache.river.loader.pref.internal.Modifier and Type | Field and Description |
---|---|
private Map<String,Object> |
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<String,Object> |
namespacePrefs |
private Map<String,Object> |
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<String,Object> map,
String name,
Object preference)
Insert a preference expression and value into a given map.
|
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<String,Object> 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 volatile boolean isEmpty
private final Boolean defaultPreference
public PreferredResources(InputStream in) throws IOException
IOException
PreferredResources
private String readLineTrimComments(BufferedReader br) throws IOException
IOException
private void mapPut(Map<String,Object> 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<String,Object> 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.