# Class AttributeValueExp

java.lang.Object
javax.management.AttributeValueExp

All Implemented Interfaces:
  `Serializable, ValueExp`

public class AttributeValueExp extends Object implements ValueExp

Represents attributes used as arguments to relational constraints. Instances of this class are usually obtained using `Query.attr`.

An `AttributeValueExp` may be used anywhere a `ValueExp` is required.

Since:
  1.5
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AttributeValueExp()`
  Deprecated.
  An instance created with this constructor cannot be used in a query.
  `AttributeValueExp(String attr)`
  Creates a new `AttributeValueExp` representing the specified object attribute, named attr.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ValueExp`
  `apply(ObjectName name)`
  Applies the `AttributeValueExp` on an MBean.
  `protected Object`
  `getAttribute(ObjectName name)`
  Return the value of the given attribute in the named MBean.
  `String`
  `getAttributeName()`
  Returns a string representation of the name of the attribute.
  `void`
  `setMBeanServer(MBeanServer s)`
  Deprecated.
  This method has no effect.
  `String`
  `toString()`
  Returns the string representing its value.

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

  - ### AttributeValueExp

    @Deprecated public AttributeValueExp()
    Deprecated.
    An instance created with this constructor cannot be used in a query.
    An `AttributeValueExp` with a null attribute.

  - ### AttributeValueExp

    public AttributeValueExp(String attr)
    Creates a new `AttributeValueExp` representing the specified object attribute, named attr.
    Parameters:
      `attr` - the name of the attribute whose value is the value of this `ValueExp`.

- ## Method Details

  - ### getAttributeName

    public String getAttributeName()
    Returns a string representation of the name of the attribute.
    Returns:
      the attribute name.

  - ### apply

    public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, BadAttributeValueExpException, InvalidApplicationException

    Applies the `AttributeValueExp` on an MBean. This method calls `getAttribute(name)` and wraps the result as a `ValueExp`. The value returned by `getAttribute` must be a `Number`, `String`, or `Boolean`; otherwise this method throws a `BadAttributeValueExpException`, which will cause the containing query to be false for this `name`.

    Specified by:
      `apply` in interface `ValueExp`
    Parameters:
      `name` - The name of the MBean on which the `AttributeValueExp` will be applied.
    Returns:
      The `ValueExp`.
    Throws:
      `BadStringOperationException` - when an invalid string operation is passed to a method for constructing a query
      `BadBinaryOpValueExpException` - when an invalid expression is passed to a method for constructing a query
      `BadAttributeValueExpException` - when an invalid MBean attribute is passed to a query constructing method
      `InvalidApplicationException` - when an invalid apply is attempted

  - ### toString

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

  - ### setMBeanServer

    @Deprecated public void setMBeanServer(MBeanServer s)
    Deprecated.
    This method has no effect. The MBean Server used to obtain an attribute value is `QueryEval.getMBeanServer()`.
    Sets the MBean server on which the query is to be performed.
    Specified by:
      `setMBeanServer` in interface `ValueExp`
    Parameters:
      `s` - The MBean server on which the query is to be performed.

  - ### getAttribute

    protected Object getAttribute(ObjectName name)

    Return the value of the given attribute in the named MBean. If the attempt to access the attribute generates an exception, return null.

    The MBean Server used is the one returned by `QueryEval.getMBeanServer()`.

    Parameters:
      `name` - the name of the MBean whose attribute is to be returned.
    Returns:
      the value of the attribute, or null if it could not be obtained.