package com.hwlcn.ldap.ldap.sdk.controls; import com.hwlcn.ldap.asn1.ASN1OctetString; import com.hwlcn.ldap.ldap.sdk.Control; import com.hwlcn.ldap.ldap.sdk.LDAPException; import com.hwlcn.ldap.ldap.sdk.ResultCode; import com.hwlcn.ldap.ldap.sdk.extensions.StartTransactionExtendedRequest; import com.hwlcn.core.annotation.NotMutable; import com.hwlcn.core.annotation.ThreadSafety; import com.hwlcn.ldap.util.ThreadSafetyLevel; import static com.hwlcn.ldap.ldap.sdk.controls.ControlMessages.*; import static com.hwlcn.ldap.util.Validator.*; @NotMutable() @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE) public final class TransactionSpecificationRequestControl extends Control { public static final String TRANSACTION_SPECIFICATION_REQUEST_OID = "1.3.6.1.1.21.2"; private static final long serialVersionUID = 6489819774149849092L; private final ASN1OctetString transactionID; static { final StartTransactionExtendedRequest r = null; } public TransactionSpecificationRequestControl( final ASN1OctetString transactionID) { super(TRANSACTION_SPECIFICATION_REQUEST_OID, true, new ASN1OctetString(transactionID.getValue())); ensureNotNull(transactionID); this.transactionID = transactionID; } public TransactionSpecificationRequestControl(final Control control) throws LDAPException { super(control); transactionID = control.getValue(); if (transactionID == null) { throw new LDAPException(ResultCode.DECODING_ERROR, ERR_TXN_REQUEST_CONTROL_NO_VALUE.get()); } } public ASN1OctetString getTransactionID() { return transactionID; } @Override() public String getControlName() { return INFO_CONTROL_NAME_TXN_SPECIFICATION_REQUEST.get(); } @Override() public void toString(final StringBuilder buffer) { buffer.append("TransactionSpecificationRequestControl(transactionID='"); buffer.append(transactionID.stringValue()); buffer.append("')"); } }