/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.provider.unboundid; import com.unboundid.asn1.ASN1OctetString; import org.ldaptive.control.ControlFactory; import org.ldaptive.control.RequestControl; import org.ldaptive.control.ResponseControl; import org.ldaptive.provider.ControlHandler; /** * Unbound ID control handler. * * @author Middleware Services */ public class UnboundIDControlHandler implements ControlHandler<com.unboundid.ldap.sdk.Control> { @Override public Class<com.unboundid.ldap.sdk.Control> getControlType() { return com.unboundid.ldap.sdk.Control.class; } @Override public String getOID(final com.unboundid.ldap.sdk.Control control) { return control.getOID(); } @Override public com.unboundid.ldap.sdk.Control handleRequest(final RequestControl requestControl) { final byte[] value = requestControl.encode(); if (value == null) { return new com.unboundid.ldap.sdk.Control(requestControl.getOID(), requestControl.getCriticality()); } else { return new com.unboundid.ldap.sdk.Control( requestControl.getOID(), requestControl.getCriticality(), new ASN1OctetString(value)); } } @Override public ResponseControl handleResponse(final com.unboundid.ldap.sdk.Control responseControl) { return ControlFactory.createResponseControl( responseControl.getOID(), responseControl.isCritical(), responseControl.getValue().getValue()); } }