/*
* 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 2010 Sun Microsystems, Inc.
*/
package org.opends.sdk.responses;
import java.util.List;
import org.opends.sdk.ByteString;
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;
/**
* The password modify extended result as defined in RFC 3062. The result
* includes the generated password, if requested, but only if the modify request
* succeeded.
*
* @see org.opends.sdk.requests.PasswordModifyExtendedRequest
* @see RFC 3062 - LDAP Password
* Modify Extended Operation
*/
public interface PasswordModifyExtendedResult extends ExtendedResult
{
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult addControl(Control control)
throws UnsupportedOperationException, NullPointerException;
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult addReferralURI(String uri)
throws UnsupportedOperationException, NullPointerException;
/**
* {@inheritDoc}
*/
Throwable getCause();
/**
* {@inheritDoc}
*/
C getControl(ControlDecoder decoder,
DecodeOptions options) throws NullPointerException, DecodeException;
/**
* {@inheritDoc}
*/
List getControls();
/**
* {@inheritDoc}
*/
String getDiagnosticMessage();
/**
* Returns the newly generated password, but only if the password modify
* request succeeded and a generated password was requested.
*
* @return The newly generated password, or {@code null} if the password
* modify request failed or a generated password was not requested.
*/
ByteString getGeneratedPassword();
/**
* {@inheritDoc}
*/
String getMatchedDN();
/**
* {@inheritDoc}
*/
String getOID();
/**
* {@inheritDoc}
*/
List getReferralURIs();
/**
* {@inheritDoc}
*/
ResultCode getResultCode();
/**
* {@inheritDoc}
*/
ByteString getValue();
/**
* {@inheritDoc}
*/
boolean hasValue();
/**
* {@inheritDoc}
*/
boolean isReferral();
/**
* {@inheritDoc}
*/
boolean isSuccess();
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult setCause(Throwable cause)
throws UnsupportedOperationException;
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult setDiagnosticMessage(String message)
throws UnsupportedOperationException;
/**
* Sets the generated password.
*
* @param password
* The generated password, or {@code null} if there is no generated
* password associated with this result.
* @return This password modify result.
* @throws UnsupportedOperationException
* If this password modify extended result does not permit the
* generated password to be set.
*/
PasswordModifyExtendedResult setGeneratedPassword(ByteString password)
throws UnsupportedOperationException;
/**
* Sets the generated password. The password will be converted to a UTF-8
* octet string.
*
* @param password
* The generated password, or {@code null} if there is no generated
* password associated with this result.
* @return This password modify result.
* @throws UnsupportedOperationException
* If this password modify extended result does not permit the
* generated password to be set.
*/
PasswordModifyExtendedResult setGeneratedPassword(char[] password)
throws UnsupportedOperationException;
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult setMatchedDN(String dn)
throws UnsupportedOperationException;
/**
* {@inheritDoc}
*/
PasswordModifyExtendedResult setResultCode(ResultCode resultCode)
throws UnsupportedOperationException, NullPointerException;
}