# Class AccessibleRelation

java.lang.Object
javax.accessibility.AccessibleBundle
javax.accessibility.AccessibleRelation

public class AccessibleRelation extends AccessibleBundle
Class `AccessibleRelation` describes a relation between the object that implements the `AccessibleRelation` and one or more other objects. The actual relations that an object has with other objects are defined as an `AccessibleRelationSet`, which is a composed set of `AccessibleRelations`.

The `AccessibleBundle.toDisplayString()` method allows you to obtain the localized string for a locale independent key from a predefined `ResourceBundle` for the keys defined in this class.

The constants in this class present a strongly typed enumeration of common object roles. If the constants in this class are not sufficient to describe the role of an object, a subclass should be generated from this class and it should provide constants in a similar manner.

Since:
  1.3

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `CHILD_NODE_OF`
  Indicates that an object is a child node of one or more objects.
  `static final String`
  `CHILD_NODE_OF_PROPERTY`
  Indicates the `CHILD_NODE_OF` relation between two or more objects has changed.
  `static final String`
  `CONTROLLED_BY`
  Indicates an object is controlled by one or more target objects.
  `static final String`
  `CONTROLLED_BY_PROPERTY`
  Identifies that the target object that is doing the controlling has changed.
  `static final String`
  `CONTROLLER_FOR`
  Indicates an object is a controller for one or more target objects.
  `static final String`
  `CONTROLLER_FOR_PROPERTY`
  Identifies that the controller for the target object has changed.
  `static final String`
  `EMBEDDED_BY`
  Indicates that an object is embedded in one or more objects.
  `static final String`
  `EMBEDDED_BY_PROPERTY`
  Indicates the `EMBEDDED_BY` relation between two or more objects has changed.
  `static final String`
  `EMBEDS`
  Indicates that an object has one or more objects embedded in it.
  `static final String`
  `EMBEDS_PROPERTY`
  Indicates the `EMBEDS` relation between two or more objects has changed.
  `static final String`
  `FLOWS_FROM`
  Indicates an object is logically contiguous with a second object where the second object occurs before the object.
  `static final String`
  `FLOWS_FROM_PROPERTY`
  Indicates the `FLOWS_FROM` relation between two objects has changed.
  `static final String`
  `FLOWS_TO`
  Indicates an object is logically contiguous with a second object where the second object occurs after the object.
  `static final String`
  `FLOWS_TO_PROPERTY`
  Indicates the `FLOWS_TO` relation between two objects has changed.
  `static final String`
  `LABEL_FOR`
  Indicates an object is a label for one or more target objects.
  `static final String`
  `LABEL_FOR_PROPERTY`
  Identifies that the target group for a label has changed.
  `static final String`
  `LABELED_BY`
  Indicates an object is labeled by one or more target objects.
  `static final String`
  `LABELED_BY_PROPERTY`
  Identifies that the objects that are doing the labeling have changed.
  `static final String`
  `MEMBER_OF`
  Indicates an object is a member of a group of one or more target objects.
  `static final String`
  `MEMBER_OF_PROPERTY`
  Identifies that group membership has changed.
  `static final String`
  `PARENT_WINDOW_OF`
  Indicates that an object is a parent window of one or more objects.
  `static final String`
  `PARENT_WINDOW_OF_PROPERTY`
  Indicates the `PARENT_WINDOW_OF` relation between two or more objects has changed.
  `static final String`
  `SUBWINDOW_OF`
  Indicates that an object is a subwindow of one or more objects.
  `static final String`
  `SUBWINDOW_OF_PROPERTY`
  Indicates the `SUBWINDOW_OF` relation between two or more objects has changed.

  ### Fields declared in class AccessibleBundle

  `key`
  Modifier and Type
  Field
  Description
  `protected String`
  `key`
  The locale independent name of the state.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AccessibleRelation(String key)`
  Create a new `AccessibleRelation` using the given locale independent key.
  `AccessibleRelation(String key, Object target)`
  Creates a new `AccessibleRelation` using the given locale independent key.
  `AccessibleRelation(String key, Object[] target)`
  Creates a new `AccessibleRelation` using the given locale independent key.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getKey()`
  Returns the key for this relation.
  `Object[]`
  `getTarget()`
  Returns the target objects for this relation.
  `void`
  `setTarget(Object target)`
  Sets the target object for this relation.
  `void`
  `setTarget(Object[] target)`
  Sets the target objects for this relation.

  ### Methods declared in class AccessibleBundle

  `toDisplayString, toDisplayString, toDisplayString, toString`
  Modifier and Type
  Method
  Description
  `String`
  `toDisplayString()`
  Gets localized string describing the key using the default locale.
  `protected String`
  `toDisplayString(String name, Locale locale)`
  Obtains the key as a localized string.
  `String`
  `toDisplayString(Locale locale)`
  Obtains the key as a localized string.
  `String`
  `toString()`
  Gets localized string describing the key using the default locale.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### LABEL_FOR

    public static final String LABEL_FOR
    Indicates an object is a label for one or more target objects.
    See Also:
      - `getTarget()`
      - `CONTROLLER_FOR`
      - `CONTROLLED_BY`
      - `LABELED_BY`
      - `MEMBER_OF`

  - ### LABELED_BY

    public static final String LABELED_BY
    Indicates an object is labeled by one or more target objects.
    See Also:
      - `getTarget()`
      - `CONTROLLER_FOR`
      - `CONTROLLED_BY`
      - `LABEL_FOR`
      - `MEMBER_OF`

  - ### MEMBER_OF

    public static final String MEMBER_OF
    Indicates an object is a member of a group of one or more target objects.
    See Also:
      - `getTarget()`
      - `CONTROLLER_FOR`
      - `CONTROLLED_BY`
      - `LABEL_FOR`
      - `LABELED_BY`

  - ### CONTROLLER_FOR

    public static final String CONTROLLER_FOR
    Indicates an object is a controller for one or more target objects.
    See Also:
      - `getTarget()`
      - `CONTROLLED_BY`
      - `LABEL_FOR`
      - `LABELED_BY`
      - `MEMBER_OF`

  - ### CONTROLLED_BY

    public static final String CONTROLLED_BY
    Indicates an object is controlled by one or more target objects.
    See Also:
      - `getTarget()`
      - `CONTROLLER_FOR`
      - `LABEL_FOR`
      - `LABELED_BY`
      - `MEMBER_OF`

  - ### FLOWS_TO

    public static final String FLOWS_TO
    Indicates an object is logically contiguous with a second object where the second object occurs after the object. An example is a paragraph of text that runs to the end of a page and continues on the next page with an intervening text footer and/or text header. The two parts of the paragraph are separate text elements but are related in that the second element is a continuation of the first element. In other words, the first element "flows to" the second element.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### FLOWS_FROM

    public static final String FLOWS_FROM
    Indicates an object is logically contiguous with a second object where the second object occurs before the object. An example is a paragraph of text that runs to the end of a page and continues on the next page with an intervening text footer and/or text header. The two parts of the paragraph are separate text elements but are related in that the second element is a continuation of the first element. In other words, the second element "flows from" the second element.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### SUBWINDOW_OF

    public static final String SUBWINDOW_OF
    Indicates that an object is a subwindow of one or more objects.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### PARENT_WINDOW_OF

    public static final String PARENT_WINDOW_OF
    Indicates that an object is a parent window of one or more objects.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### EMBEDS

    public static final String EMBEDS
    Indicates that an object has one or more objects embedded in it.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### EMBEDDED_BY

    public static final String EMBEDDED_BY
    Indicates that an object is embedded in one or more objects.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### CHILD_NODE_OF

    public static final String CHILD_NODE_OF
    Indicates that an object is a child node of one or more objects.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### LABEL_FOR_PROPERTY

    public static final String LABEL_FOR_PROPERTY
    Identifies that the target group for a label has changed.
    See Also:
      - Constant Field Values

  - ### LABELED_BY_PROPERTY

    public static final String LABELED_BY_PROPERTY
    Identifies that the objects that are doing the labeling have changed.
    See Also:
      - Constant Field Values

  - ### MEMBER_OF_PROPERTY

    public static final String MEMBER_OF_PROPERTY
    Identifies that group membership has changed.
    See Also:
      - Constant Field Values

  - ### CONTROLLER_FOR_PROPERTY

    public static final String CONTROLLER_FOR_PROPERTY
    Identifies that the controller for the target object has changed.
    See Also:
      - Constant Field Values

  - ### CONTROLLED_BY_PROPERTY

    public static final String CONTROLLED_BY_PROPERTY
    Identifies that the target object that is doing the controlling has changed.
    See Also:
      - Constant Field Values

  - ### FLOWS_TO_PROPERTY

    public static final String FLOWS_TO_PROPERTY
    Indicates the `FLOWS_TO` relation between two objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### FLOWS_FROM_PROPERTY

    public static final String FLOWS_FROM_PROPERTY
    Indicates the `FLOWS_FROM` relation between two objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### SUBWINDOW_OF_PROPERTY

    public static final String SUBWINDOW_OF_PROPERTY
    Indicates the `SUBWINDOW_OF` relation between two or more objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### PARENT_WINDOW_OF_PROPERTY

    public static final String PARENT_WINDOW_OF_PROPERTY
    Indicates the `PARENT_WINDOW_OF` relation between two or more objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### EMBEDS_PROPERTY

    public static final String EMBEDS_PROPERTY
    Indicates the `EMBEDS` relation between two or more objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### EMBEDDED_BY_PROPERTY

    public static final String EMBEDDED_BY_PROPERTY
    Indicates the `EMBEDDED_BY` relation between two or more objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### CHILD_NODE_OF_PROPERTY

    public static final String CHILD_NODE_OF_PROPERTY
    Indicates the `CHILD_NODE_OF` relation between two or more objects has changed.
    Since:
      1.5
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### AccessibleRelation

    public AccessibleRelation(String key)
    Create a new `AccessibleRelation` using the given locale independent key. The key `String` should be a locale independent key for the relation. It is not intended to be used as the actual `String` to display to the user. To get the localized string, use `AccessibleBundle.toDisplayString()`.
    Parameters:
      `key` - the locale independent name of the relation
    See Also:
      - `AccessibleBundle.toDisplayString(String, Locale)`

  - ### AccessibleRelation

    public AccessibleRelation(String key, Object target)
    Creates a new `AccessibleRelation` using the given locale independent key. The key `String` should be a locale independent key for the relation. It is not intended to be used as the actual `String` to display to the user. To get the localized string, use `AccessibleBundle.toDisplayString()`.
    Parameters:
      `key` - the locale independent name of the relation
      `target` - the target object for this relation
    See Also:
      - `AccessibleBundle.toDisplayString(String, Locale)`

  - ### AccessibleRelation

    public AccessibleRelation(String key, Object[] target)
    Creates a new `AccessibleRelation` using the given locale independent key. The key `String` should be a locale independent key for the relation. It is not intended to be used as the actual `String` to display to the user. To get the localized string, use `AccessibleBundle.toDisplayString()`.
    Parameters:
      `key` - the locale independent name of the relation
      `target` - the target object(s) for this relation
    See Also:
      - `AccessibleBundle.toDisplayString(String, Locale)`

- ## Method Details

  - ### getKey

    public String getKey()
    Returns the key for this relation.
    Returns:
      the key for this relation
    See Also:
      - `CONTROLLER_FOR`
      - `CONTROLLED_BY`
      - `LABEL_FOR`
      - `LABELED_BY`
      - `MEMBER_OF`

  - ### getTarget

    public Object[] getTarget()
    Returns the target objects for this relation.
    Returns:
      an array containing the target objects for this relation

  - ### setTarget

    public void setTarget(Object target)
    Sets the target object for this relation.
    Parameters:
      `target` - the target object for this relation

  - ### setTarget

    public void setTarget(Object[] target)
    Sets the target objects for this relation.
    Parameters:
      `target` - an array containing the target objects for this relation