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

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

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