/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2009 Sun Microsystems, Inc. */ package org.opends.sdk.responses; import java.util.List; import org.opends.sdk.DecodeException; import org.opends.sdk.DecodeOptions; import org.opends.sdk.ResultCode; import org.opends.sdk.controls.Control; import org.opends.sdk.controls.ControlDecoder; /** * A Result is used to indicate the status of an operation performed by the * server. A Result is comprised of several fields: * */ public interface Result extends Response { /** * {@inheritDoc} */ Result addControl(Control control) throws UnsupportedOperationException, NullPointerException; /** * Adds the provided referral URI to this result. * * @param uri * The referral URI to be added. * @return This result. * @throws UnsupportedOperationException * If this result does not permit referrals to be added. * @throws NullPointerException * If {@code uri} was {@code null}. */ Result addReferralURI(String uri) throws UnsupportedOperationException, NullPointerException; /** * Returns the throwable cause associated with this result if available. A * cause may be provided in cases where a result indicates a failure due to a * client-side error. * * @return The throwable cause, or {@code null} if none was provided. */ Throwable getCause(); /** * {@inheritDoc} */ C getControl(ControlDecoder decoder, DecodeOptions options) throws NullPointerException, DecodeException; /** * {@inheritDoc} */ List getControls(); /** * Returns the diagnostic message associated with this result. * * @return The diagnostic message, which may be empty if none was provided * (never {@code null}). */ String getDiagnosticMessage(); /** * Returns the matched DN associated with this result. * * @return The matched DN, which may be empty if none was provided (never * {@code null}). */ String getMatchedDN(); /** * Returns a {@code List} containing the referral URIs included with this * result. The returned {@code List} may be modified if permitted by this * result. * * @return A {@code List} containing the referral URIs. */ List getReferralURIs(); /** * Returns the result code associated with this result. * * @return The result code. */ ResultCode getResultCode(); /** * Indicates whether or not a referral needs to be chased in order to complete * the operation. *

* Specifically, this method returns {@code true} if the result code is equal * to {@link ResultCode#REFERRAL}. * * @return {@code true} if a referral needs to be chased, otherwise {@code * false}. */ boolean isReferral(); /** * Indicates whether or not the request succeeded or not. This method will * return {code true} for all non-error responses. * * @return {@code true} if the request succeeded, otherwise {@code false}. */ boolean isSuccess(); /** * Sets the throwable cause associated with this result if available. A cause * may be provided in cases where a result indicates a failure due to a * client-side error. * * @param cause * The throwable cause, which may be {@code null} indicating that * none was provided. * @return This result. * @throws UnsupportedOperationException * If this result does not permit the cause to be set. */ Result setCause(Throwable cause) throws UnsupportedOperationException; /** * Sets the diagnostic message associated with this result. * * @param message * The diagnostic message, which may be empty or {@code null} * indicating that none was provided. * @return This result. * @throws UnsupportedOperationException * If this result does not permit the diagnostic message to be set. */ Result setDiagnosticMessage(String message) throws UnsupportedOperationException; /** * Sets the matched DN associated with this result. * * @param dn * The matched DN associated, which may be empty or {@code null} * indicating that none was provided. * @return This result. * @throws UnsupportedOperationException * If this result does not permit the matched DN to be set. */ Result setMatchedDN(String dn) throws UnsupportedOperationException; /** * Sets the result code associated with this result. * * @param resultCode * The result code. * @return This result. * @throws UnsupportedOperationException * If this result does not permit the result code to be set. * @throws NullPointerException * If {@code resultCode} was {@code null}. */ Result setResultCode(ResultCode resultCode) throws UnsupportedOperationException, NullPointerException; }