
org.ldaptive.Response Maven / Gradle / Ivy
/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive;
import java.util.Arrays;
import org.ldaptive.control.ResponseControl;
/**
* Wrapper class for all operation responses.
*
* @param type of ldap result contained in this response
*
* @author Middleware Services
*/
public class Response implements ResponseMessage
{
/** Operation response. */
private final T result;
/** Operation result code. */
private final ResultCode resultCode;
/** Response message. */
private final String message;
/** Response matched DN. */
private final String matchedDn;
/** Response controls. */
private final ResponseControl[] responseControls;
/** Referral URLs. */
private final String[] referralURLs;
/** Message ID. */
private final int messageId;
/**
* Creates a new ldap response.
*
* @param t response type
* @param rc result code
*/
public Response(final T t, final ResultCode rc)
{
result = t;
resultCode = rc;
message = null;
matchedDn = null;
responseControls = null;
referralURLs = null;
messageId = -1;
}
/**
* Creates a new ldap response.
*
* @param t response type
* @param rc result code
* @param msg result message
* @param dn matched dn
* @param c response controls
* @param urls referral urls
* @param id message id
*/
public Response(
final T t,
final ResultCode rc,
final String msg,
final String dn,
final ResponseControl[] c,
final String[] urls,
final int id)
{
result = t;
resultCode = rc;
message = msg;
matchedDn = dn;
responseControls = c;
referralURLs = urls;
messageId = id;
}
/**
* Returns the result of the ldap operation.
*
* @return operation result
*/
public T getResult()
{
return result;
}
/**
* Returns the result code of the ldap operation.
*
* @return operation result code
*/
public ResultCode getResultCode()
{
return resultCode;
}
/**
* Returns any error or diagnostic message produced by the ldap operation.
*
* @return message
*/
public String getMessage()
{
return message;
}
/**
* Returns the matched DN produced by the ldap operation.
*
* @return matched DN
*/
public String getMatchedDn()
{
return matchedDn;
}
@Override
public ResponseControl[] getControls()
{
return responseControls;
}
@Override
public ResponseControl getControl(final String oid)
{
if (getControls() != null) {
for (ResponseControl c : getControls()) {
if (c.getOID().equals(oid)) {
return c;
}
}
}
return null;
}
/**
* Returns the referral URLs produced by the ldap operation.
*
* @return referral urls
*/
public String[] getReferralURLs()
{
return referralURLs;
}
@Override
public int getMessageId()
{
return messageId;
}
@Override
public String toString()
{
return
String.format(
"[%s@%d::result=%s, resultCode=%s, message=%s, matchedDn=%s, " +
"responseControls=%s, referralURLs=%s, messageId=%s]",
getClass().getName(),
hashCode(),
result,
resultCode,
message,
matchedDn,
Arrays.toString(responseControls),
Arrays.toString(referralURLs),
messageId);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy