package com.hwlcn.ldap.ldap.sdk.migrate.ldapjdk;
import java.io.Serializable;
import com.hwlcn.ldap.asn1.ASN1OctetString;
import com.hwlcn.ldap.ldap.sdk.ExtendedRequest;
import com.hwlcn.core.annotation.NotExtensible;
import com.hwlcn.core.annotation.NotMutable;
import com.hwlcn.core.annotation.ThreadSafety;
import com.hwlcn.ldap.util.ThreadSafetyLevel;
@NotExtensible()
@NotMutable()
@ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE)
public class LDAPExtendedOperation
implements Serializable
{
private static final long serialVersionUID = 9207085503424216431L;
private final byte[] value;
private final String oid;
public LDAPExtendedOperation(final String id, final byte[] vals)
{
oid = id;
value = vals;
}
public LDAPExtendedOperation(final ExtendedRequest extendedRequest)
{
oid = extendedRequest.getOID();
final ASN1OctetString v = extendedRequest.getValue();
if (v == null)
{
value = null;
}
else
{
value = v.getValue();
}
}
public String getID()
{
return oid;
}
public byte[] getValue()
{
return value;
}
public final ExtendedRequest toExtendedRequest()
{
if (value == null)
{
return new ExtendedRequest(oid);
}
else
{
return new ExtendedRequest(oid, new ASN1OctetString(value));
}
}
@Override()
public String toString()
{
final StringBuilder buffer = new StringBuilder();
buffer.append("LDAPExtendedOperation(id=");
buffer.append(oid);
if (value != null)
{
buffer.append(", value=byte[");
buffer.append(value.length);
buffer.append(']');
}
buffer.append(')');
return buffer.toString();
}
}