View Javadoc
1   /*
2    *  Licensed to the Apache Software Foundation (ASF) under one
3    *  or more contributor license agreements.  See the NOTICE file
4    *  distributed with this work for additional information
5    *  regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    *  "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *  
10   *    https://www.apache.org/licenses/LICENSE-2.0
11   *  
12   *  Unless required by applicable law or agreed to in writing,
13   *  software distributed under the License is distributed on an
14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *  KIND, either express or implied.  See the License for the
16   *  specific language governing permissions and limitations
17   *  under the License. 
18   *  
19   */
20  package org.apache.directory.api.ldap.extras.extended.endTransaction;
21  
22  
23  import java.util.List;
24  
25  import org.apache.directory.api.ldap.model.message.ExtendedResponse;
26  
27  
28  /**
29   * The interface for End Transaction Extended Response. It's described in RFC 5805 :
30   * 
31   * <pre>
32   * ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
33   *            COMPONENTS OF LDAPResult,
34   *            responseName     [10] LDAPOID OPTIONAL,
35   *            responseValue    [11] OCTET STRING OPTIONAL }
36   * </pre>
37   * 
38   * where the responseName is not present, and the responseValue contains
39   * a BER encoded value, defined by the following grammar :
40   * 
41   * <pre>
42   * txnEndRes ::= SEQUENCE {
43   *         messageID MessageID OPTIONAL,
44   *              -- msgid associated with non-success resultCode
45   *         updatesControls SEQUENCE OF updateControls SEQUENCE {
46   *              messageID MessageID,
47   *                   -- msgid associated with controls
48   *              controls  Controls
49   *         } OPTIONAL
50   *    }
51   * </pre>
52   * 
53   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
54   */
55  public interface EndTransactionResponse extends ExtendedResponse
56  {
57      /** The OID for the Start Transaction extended operation response. */
58      String EXTENSION_OID = EndTransactionRequest.EXTENSION_OID;
59      
60      
61      /**
62       * @return The Message ID if failure
63       */
64      int getFailedMessageId();
65      
66      
67      /**
68       * @param failedMessageId The messageId that causes the failure
69       */
70      void setFailedMessageId( int failedMessageId );
71      
72      
73      /**
74       * @return the list of &lt;messageId, Controls&gt; processed within the transaction 
75       */
76      List<UpdateControls> getUpdateControls();
77  }