# Class BasicControl

java.lang.Object
javax.naming.ldap.BasicControl

All Implemented Interfaces:
  `Serializable, Control`

Direct Known Subclasses:
  `ManageReferralControl, PagedResultsControl, PagedResultsResponseControl, SortControl, SortResponseControl`

public class BasicControl extends Object implements Control
This class provides a basic implementation of the `Control` interface. It represents an LDAPv3 Control as defined in RFC 2251.

Since:
  1.5
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `criticality`
  The control's criticality.
  `protected String`
  `id`
  The control's object identifier string.
  `protected byte[]`
  `value`
  The control's ASN.1 BER encoded value.

  ### Fields declared in interface Control

  `CRITICAL, NONCRITICAL`
  Modifier and Type
  Field
  Description
  `static final boolean`
  `CRITICAL`
  Indicates a critical control.
  `static final boolean`
  `NONCRITICAL`
  Indicates a non-critical control.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BasicControl(String id)`
  Constructs a non-critical control.
  `BasicControl(String id, boolean criticality, byte[] value)`
  Constructs a control using the supplied arguments.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte[]`
  `getEncodedValue()`
  Retrieves the control's ASN.1 BER encoded value.
  `String`
  `getID()`
  Retrieves the control's object identifier string.
  `boolean`
  `isCritical()`
  Determines the control's criticality.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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.
  `String`
  `toString()`
  Returns a string representation of the object.
  `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

  - ### id

    protected String id
    The control's object identifier string.

  - ### criticality

    protected boolean criticality
    The control's criticality.

  - ### value

    protected byte[] value
    The control's ASN.1 BER encoded value.

- ## Constructor Details

  - ### BasicControl

    public BasicControl(String id)
    Constructs a non-critical control.
    Parameters:
      `id` - The control's object identifier string.

  - ### BasicControl

    public BasicControl(String id, boolean criticality, byte[] value)
    Constructs a control using the supplied arguments.
    Parameters:
      `id` - The control's object identifier string.
      `criticality` - The control's criticality.
      `value` - The control's ASN.1 BER encoded value. It is not cloned - any changes to value will affect the contents of the control. It may be null.

- ## Method Details

  - ### getID

    public String getID()
    Retrieves the control's object identifier string.
    Specified by:
      `getID` in interface `Control`
    Returns:
      The non-null object identifier string.

  - ### isCritical

    public boolean isCritical()
    Determines the control's criticality.
    Specified by:
      `isCritical` in interface `Control`
    Returns:
      true if the control is critical; false otherwise.

  - ### getEncodedValue

    public byte[] getEncodedValue()
    Retrieves the control's ASN.1 BER encoded value. The result includes the BER tag and length for the control's value but does not include the control's object identifier and criticality setting.
    Specified by:
      `getEncodedValue` in interface `Control`
    Returns:
      A possibly null byte array representing the control's ASN.1 BER encoded value. It is not cloned - any changes to the returned value will affect the contents of the control.