001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020 package org.apache.directory.api.ldap.model.message;
021
022
023 import org.apache.directory.api.ldap.model.exception.MessageException;
024 import org.apache.directory.api.ldap.model.name.Dn;
025
026
027 /**
028 * Delete request protocol message used to remove an existing leaf entry from
029 * the directory.
030 *
031 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
032 */
033 public interface DeleteRequest extends SingleReplyRequest<DeleteResponse>, AbandonableRequest
034 {
035 /** Delete request message type enumeration value */
036 MessageTypeEnum TYPE = MessageTypeEnum.DEL_REQUEST;
037
038 /** Delete response message type enumeration value */
039 MessageTypeEnum RESP_TYPE = DeleteResponse.TYPE;
040
041
042 /**
043 * Gets the distinguished name of the leaf entry to be deleted by this
044 * request.
045 *
046 * @return the Dn of the leaf entry to delete.
047 */
048 Dn getName();
049
050
051 /**
052 * Sets the distinguished name of the leaf entry to be deleted by this
053 * request.
054 *
055 * @param name the Dn of the leaf entry to delete.
056 * @return The DeleteRequest instance
057 */
058 DeleteRequest setName( Dn name );
059
060
061 /**
062 * {@inheritDoc}
063 */
064 DeleteRequest setMessageId( int messageId );
065
066
067 /**
068 * {@inheritDoc}
069 */
070 DeleteRequest addControl( Control control ) throws MessageException;
071
072
073 /**
074 * {@inheritDoc}
075 */
076 DeleteRequest addAllControls( Control[] controls ) throws MessageException;
077
078
079 /**
080 * {@inheritDoc}
081 */
082 DeleteRequest removeControl( Control control ) throws MessageException;
083 }