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   *     http://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.server.ldap;
21  
22  
23  import org.apache.directory.server.core.interceptor.context.OperationContext;
24  import org.apache.directory.shared.ldap.message.Request;
25  import org.apache.directory.shared.ldap.message.Response;
26  
27  
28  /**
29   * Utility methods used by the LDAP protocol service.
30   *
31   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
32   * @version $Rev$, $Date$
33   */
34  public class LdapProtocolUtils implements LdapProtocolConstants
35  {
36      /**
37       * Extracts request controls from a request to populate into an
38       * OperationContext.
39       *  
40       * @param opContext the context to populate with request controls
41       * @param request the request to extract controls from
42       */
43      public static void setRequestControls( OperationContext opContext, Request request ) throws Exception
44      {
45          if ( request.getControls() != null )
46          {
47              request.addAll( request.getControls().values().toArray( EMPTY_CONTROLS ) );
48          }
49      }
50  
51  
52      /**
53       * Extracts response controls from a an OperationContext to populate into 
54       * a Response object.
55       *  
56       * @param opContext the context to extract controls from
57       * @param response the response to populate with response controls
58       */
59      public static void setResponseControls( OperationContext opContext, Response response ) throws Exception
60      {
61          opContext.addRequestControls( opContext.getResponseControls() );
62      }
63  }