# Class Line.Info

java.lang.Object
javax.sound.sampled.Line.Info

Direct Known Subclasses:
  `DataLine.Info, Port.Info`

Enclosing interface:
  `Line`

public static class Line.Info extends Object
A `Line.Info` object contains information about a line. The only information provided by `Line.Info` itself is the Java class of the line. A subclass of `Line.Info` adds other kinds of information about the line. This additional information depends on which `Line` subinterface is implemented by the kind of line that the `Line.Info` subclass describes.

A `Line.Info` can be retrieved using various methods of the `Line`, `Mixer`, and `AudioSystem` interfaces. Other such methods let you pass a `Line.Info` as an argument, to learn whether lines matching the specified configuration are available and to obtain them.

Since:
  1.3
See Also:
  - `Line.getLineInfo()`
  - `Mixer.getSourceLineInfo()`
  - `Mixer.getTargetLineInfo()`
  - `Mixer.getLine(Line.Info)`
  - `Mixer.getSourceLineInfo(Line.Info)`
  - `Mixer.getTargetLineInfo(Line.Info)`
  - `Mixer.isLineSupported(Line.Info)`
  - `AudioSystem.getLine(Line.Info)`
  - `AudioSystem.getSourceLineInfo(Line.Info)`
  - `AudioSystem.getTargetLineInfo(Line.Info)`
  - `AudioSystem.isLineSupported(Line.Info)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Info(Class<?> lineClass)`
  Constructs an info object that describes a line of the specified class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Class<?>`
  `getLineClass()`
  Obtains the class of the line that this `Line.Info` object describes.
  `boolean`
  `matches(Line.Info info)`
  Indicates whether the specified info object matches this one.
  `String`
  `toString()`
  Returns a string representation of the info object.

  ### 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.

- ## Constructor Details

  - ### Info

    public Info(Class<?> lineClass)
    Constructs an info object that describes a line of the specified class. This constructor is typically used by an application to describe a desired line.
    Parameters:
      `lineClass` - the class of the line that the new `Line.Info` object describes

- ## Method Details

  - ### getLineClass

    public Class<?> getLineClass()
    Obtains the class of the line that this `Line.Info` object describes.
    Returns:
      the described line's class

  - ### matches

    public boolean matches(Line.Info info)
    Indicates whether the specified info object matches this one. To match, the specified object must be identical to or a special case of this one. The specified info object must be either an instance of the same class as this one, or an instance of a sub-type of this one. In addition, the attributes of the specified object must be compatible with the capabilities of this one. Specifically, the routing configuration for the specified info object must be compatible with that of this one. Subclasses may add other criteria to determine whether the two objects match.
    Parameters:
      `info` - the info object which is being compared to this one
    Returns:
      `true` if the specified object matches this one, `false` otherwise

  - ### toString

    public String toString()
    Returns a string representation of the info object.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of the info object