Class PreferredResources

java.lang.Object
com.sun.jini.loader.pref.internal.PreferredResources

public final class PreferredResources extends Object
Internal data structure which holds preference information for a preferred class loader. This utility is used only by the preferred class loader provider and is not intended to be a public API. A preferred resources object is created from an input stream which is formatted according to the Preferred List Syntax which is defined in the specification for 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.
Since:
2.0
Author:
Sun Microsystems, Inc.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constant value that indicates that there is no preference value for a given name.
    static final int
    Constant value that indicates that the resource for a given name is known to be not preferred.
    static final int
    Constant value that indicates that a given name is preferred.
    static final int
    Constant value that indicates that a given resource is preferred.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a preference object from a stream of formatted preference syntax.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the preference setting that will be applied to names which have no explicit preference setting in contained preference settings.
    int
    getNameState(String name, boolean isClass)
    Searches the preference maps to determine the preference state of the named resource.
    Return the boolean value of the most specific wild card (package and namespace) expression which matches name.
    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 the preferences to the specified OutputStream using the preference list syntax.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NAME_NO_PREFERENCE

      public static final int NAME_NO_PREFERENCE
      Constant value that indicates that there is no preference value for a given name.
      See Also:
    • NAME_NOT_PREFERRED

      public static final int NAME_NOT_PREFERRED
      Constant value that indicates that the resource for a given name is known to be not preferred. This state is applicable when a preference expression declared that the name is not preferred or when the resource for the name (preferred or not) is known to not exist.
      See Also:
    • NAME_PREFERRED

      public static final int NAME_PREFERRED
      Constant value that indicates that a given name is preferred. This state is applicable when a preference expression declares the name to be preferred but it is uncertain whether the resource for the name the exists.
      See Also:
    • NAME_PREFERRED_RESOURCE_EXISTS

      public static final int NAME_PREFERRED_RESOURCE_EXISTS
      Constant value that indicates that a given resource is preferred. This state is applicable when a preference expression declares the name to be preferred and the resource for the name is known to exist.
      See Also:
  • Constructor Details

  • Method Details

    • write

      public void write(OutputStream out) throws IOException
      Write the preferences to the specified OutputStream using the preference list syntax. Preference expressions are written in the following order: Complete name expressions Package expressions Namespace expressions
      Parameters:
      out - the stream to which formatted preference information will be written
      Throws:
      IOException - if an error occurs while writing to the stream
    • getDefaultPreference

      public Boolean getDefaultPreference()
      Returns the preference setting that will be applied to names which have no explicit preference setting in contained preference settings. The default preference is set by the first preference setting with no associated name in a preferences list file.
      Returns:
      default boolean preference value for these preferences
    • setNameState

      public void setNameState(String name, int prefState) throws IOException
      Enable MarshalInputStream to optimize preference information: permits complete name expressions to be added for names that only match wild-card expressions. These added expressions hold data that tells if a resource has been loaded. This method makes this object mutable. Synchronization must be used to ensure consistent preference state when this method is called.
      Parameters:
      name - the name for which preferred state will be set
      prefState - the preferred state for the given name
      Throws:
      IOException - if the name length is zero length
    • getNameState

      public int getNameState(String name, boolean isClass) throws IOException
      Searches the preference maps to determine the preference state of the named resource. The preference state for the given resource name is returned. The preference state is an integer that is equal to one of the preference state values defined above. This state integer tells the preference value of name and whether its resource is known to exist.
      Parameters:
      isClass - whether the given name refers to a class resource
      Returns:
      the state for the given name which will be set to one of the following values: NAME_NO_PREFERENCE, NAME_NOT_PREFERRED, NAME_PREFERRED, NAME_PREFERRED_RESOURCE_EXISTS
      Throws:
      IOException - if an error occurs getting the state for the supplied name
    • getWildcardPreference

      public Boolean getWildcardPreference(String name)
      Return the boolean value of the most specific wild card (package and namespace) expression which matches name. Package preferences are always more specific than namespace preferences.
      Parameters:
      name - the resource name to which the returned boolean value will apply
      Returns:
      Boolean.TRUE/code> if name is preferred. Boolean.FALSE is it is not. null if there is no wildcard preference for the name.