1 /*
2  * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package com.sun.jndi.toolkit.dir;
27 
28 import javax.naming.*;
29 import javax.naming.directory.*;
30 
31 /**
32   * A class for searching DirContexts
33   *
34   * @author Jon Ruiz
35   */
36 public class DirSearch {
search(DirContext ctx, Attributes matchingAttributes, String[] attributesToReturn)37    public static NamingEnumeration<SearchResult> search(DirContext ctx,
38        Attributes matchingAttributes,
39        String[] attributesToReturn) throws NamingException {
40         SearchControls cons = new SearchControls(
41             SearchControls.ONELEVEL_SCOPE,
42             0, 0, attributesToReturn,
43             false, false);
44 
45         return new LazySearchEnumerationImpl(
46             new ContextEnumerator(ctx, SearchControls.ONELEVEL_SCOPE),
47             new ContainmentFilter(matchingAttributes),
48             cons);
49     }
50 
search(DirContext ctx, String filter, SearchControls cons)51     public static NamingEnumeration<SearchResult> search(DirContext ctx,
52         String filter, SearchControls cons) throws NamingException {
53 
54         if (cons == null)
55             cons = new SearchControls();
56 
57         return new LazySearchEnumerationImpl(
58             new ContextEnumerator(ctx, cons.getSearchScope()),
59             new SearchFilter(filter),
60             cons);
61     }
62 
search(DirContext ctx, String filterExpr, Object[] filterArgs, SearchControls cons)63     public static NamingEnumeration<SearchResult> search(DirContext ctx,
64         String filterExpr, Object[] filterArgs, SearchControls cons)
65         throws NamingException {
66 
67         String strfilter = SearchFilter.format(filterExpr, filterArgs);
68         return search(ctx, strfilter, cons);
69     }
70 }
71