001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
010 * or http://forgerock.org/license/CDDLv1.0.html.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file and include the License file at legal-notices/CDDLv1_0.txt.
016 * If applicable, add the following below this CDDL HEADER, with the
017 * fields enclosed by brackets "[]" replaced with your own identifying
018 * information:
019 *      Portions Copyright [yyyy] [name of copyright owner]
020 *
021 * CDDL HEADER END
022 *
023 *
024 *      Copyright 2006-2009 Sun Microsystems, Inc.
025 *      Portions Copyright 2014-2015 ForgeRock AS
026 */
027package org.opends.server.core;
028
029import org.opends.server.types.Operation;
030import org.forgerock.opendj.ldap.ByteString;
031
032
033/**
034 * This interface defines an extended operation, which can perform virtually any
035 * kind of task.
036 */
037public interface ExtendedOperation
038       extends Operation
039{
040  /**
041   * Retrieves the OID for the request associated with this extended
042   * operation.
043   *
044   * @return  The OID for the request associated with this extended
045   *          operation.
046   */
047  String getRequestOID();
048
049
050
051  /**
052   * Retrieves the value for the request associated with this extended
053   * operation.
054   *
055   * @return  The value for the request associated with this extended
056   *          operation.
057   */
058  ByteString getRequestValue();
059
060
061
062  /**
063   * Retrieves the OID to include in the response to the client.
064   *
065   * @return  The OID to include in the response to the client.
066   */
067  String getResponseOID();
068
069
070
071  /**
072   * Specifies the OID to include in the response to the client.
073   *
074   * @param  responseOID  The OID to include in the response to the
075   *                      client.
076   */
077  void setResponseOID(String responseOID);
078
079
080
081  /**
082   * Retrieves the value to include in the response to the client.
083   *
084   * @return  The value to include in the response to the client.
085   */
086  ByteString getResponseValue();
087
088
089
090  /**
091   * Specifies the value to include in the response to the client.
092   *
093   * @param  responseValue  The value to include in the response to
094   *                        the client.
095   */
096  void setResponseValue(ByteString responseValue);
097}
098