You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bu...@apache.org on 2015/01/29 18:09:57 UTC

svn commit: r938244 - in /websites/staging/directory/trunk/content: ./ api/user-guide/2.11-filter-builder.html

Author: buildbot
Date: Thu Jan 29 17:09:57 2015
New Revision: 938244

Log:
Staging update by buildbot for directory

Modified:
    websites/staging/directory/trunk/content/   (props changed)
    websites/staging/directory/trunk/content/api/user-guide/2.11-filter-builder.html

Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Jan 29 17:09:57 2015
@@ -1 +1 @@
-1655644
+1655749

Modified: websites/staging/directory/trunk/content/api/user-guide/2.11-filter-builder.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/2.11-filter-builder.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/2.11-filter-builder.html Thu Jan 29 17:09:57 2015
@@ -226,8 +226,52 @@
 
 <p>would result in the string: <em>(cn&gt;=Kermit The Frog)</em></p>
 <p>Which would match entries with the common name Kermit The Frog.</p>
-<h2 id="extended-filter">Extended Filter</h2>
-<p>To be completed...</p>
+<h2 id="extensible-filter">Extensible Filter</h2>
+<p>Returns a new FilterBuilder for testing equality using specified matching rules. 
+For example:</p>
+<div class="codehilite"><pre><span class="n">extensible</span><span class="p">(</span> &quot;<span class="n">cn</span>&quot;<span class="p">,</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">).</span><span class="n">toString</span><span class="p">();</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(cn:=Kermit The Frog)</em></p>
+<p>Which would match entries with the common name Kermit The Frog.</p>
+<div class="codehilite"><pre><span class="n">extensible</span><span class="p">(</span> &quot;<span class="n">cn</span>&quot;<span class="p">,</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">useDnAttributes</span><span class="p">()</span>
+    <span class="p">.</span><span class="n">toString</span><span class="p">();</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(cn:dn:=Kermit The Frog)</em></p>
+<p>Which would match entries with the common name Kermit The Frog even if the
+common name was only specified as part of the dn.</p>
+<div class="codehilite"><pre><span class="n">extensible</span><span class="p">(</span> &quot;<span class="n">cn</span>&quot;<span class="p">,</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">setMatchingRule</span><span class="p">(</span> &quot;<span class="n">caseExactMatch</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">toString</span><span class="p">();</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(cn:caseExactMatch:=Kermit The Frog)</em></p>
+<p>Which would match entries with the common name Kermit The Frog, using a case
+sensitive matcher.</p>
+<div class="codehilite"><pre><span class="n">extensible</span><span class="p">(</span> &quot;<span class="n">cn</span>&quot;<span class="p">,</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">useDnAttributes</span><span class="p">()</span>
+    <span class="p">.</span><span class="n">setMatchingRule</span><span class="p">(</span> &quot;<span class="n">caseExactMatch</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">toString</span><span class="p">();</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(cn:dn:caseExactMatch:=Kermit The Frog)</em></p>
+<p>Which would match entries with the common name Kermit The Frog, using a case
+sensitive matcher even if the name was only specified as part of the dn.</p>
+<div class="codehilite"><pre><span class="n">extensible</span><span class="p">(</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">setMatchingRule</span><span class="p">(</span> &quot;1<span class="p">.</span>2<span class="p">.</span>3<span class="p">.</span>4<span class="p">.</span>5<span class="p">.</span>6<span class="p">.</span>7&quot; <span class="p">)</span>
+    <span class="p">.</span><span class="n">toString</span><span class="p">();</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(:1.2.3.4.5.6.7:=Kermit The Frog)</em></p>
+<p>Which would match entries with any attribute whose value is Kermit The Frog, 
+using the <em>hypothetical</em> matching rule indicated by the oid 1.2.3.4.5.6.7.</p>
 <h2 id="less-or-equal-filter">Less Or Equal Filter</h2>
 <p>Returns a new FilterBuilder for testing lexicographical less than. For example:</p>
 <div class="codehilite"><pre><span class="n">lessThanOrEqual</span><span class="p">(</span> &quot;<span class="n">sn</span>&quot;<span class="p">,</span> &quot;<span class="n">mzzzzzz</span>&quot; <span class="p">).</span><span class="n">toString</span><span class="p">();</span>
@@ -290,6 +334,52 @@
 
 
 <p>would result in the string: <em>(sn=The*ion)</em></p>
+<h2 id="custom-filter">Custom Filter</h2>
+<p>Returns a new FilterBuilder from the supplied Filter.  This can be used to create your own composite filters.  First you must create a class which implements Filter:</p>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">class</span> <span class="n">MuppetFilter</span> <span class="n">implements</span> <span class="n">Filter</span>
+<span class="p">{</span>
+    <span class="n">private</span> <span class="n">static</span> <span class="n">final</span> <span class="n">String</span> <span class="n">filter</span> <span class="p">=</span> <span class="n">and</span><span class="p">(</span>
+            <span class="n">equal</span><span class="p">(</span> &quot;<span class="n">objectClass</span>&quot;<span class="p">,</span> &quot;<span class="n">inetOrgPerson</span>&quot; <span class="p">),</span>
+            <span class="n">equal</span><span class="p">(</span> &quot;<span class="n">departmentNumber</span>&quot;<span class="p">,</span> &quot;<span class="n">muppets</span>&quot; <span class="p">)</span> <span class="p">).</span><span class="n">toString</span><span class="p">();</span>
+
+    <span class="n">private</span> <span class="n">MuppetFilter</span><span class="p">()</span>
+    <span class="p">{</span>
+    <span class="p">}</span>
+
+
+    <span class="n">public</span> <span class="n">static</span> <span class="n">Filter</span> <span class="n">muppet</span><span class="p">()</span>
+    <span class="p">{</span>
+        <span class="k">return</span> <span class="n">new</span> <span class="n">MuppetFilter</span><span class="p">();</span>
+    <span class="p">}</span>
+
+
+    <span class="n">public</span> <span class="n">StringBuilder</span> <span class="n">build</span><span class="p">()</span>
+    <span class="p">{</span>
+        <span class="k">return</span> <span class="n">build</span><span class="p">(</span> <span class="n">new</span> <span class="n">StringBuilder</span><span class="p">()</span> <span class="p">);</span>
+    <span class="p">}</span>
+
+
+    <span class="n">public</span> <span class="n">StringBuilder</span> <span class="n">build</span><span class="p">(</span> <span class="n">StringBuilder</span> <span class="n">builder</span> <span class="p">)</span>
+    <span class="p">{</span>
+        <span class="k">return</span> <span class="n">builder</span><span class="p">.</span><span class="n">append</span><span class="p">(</span> <span class="n">filter</span> <span class="p">);</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>Then you can make use of it:</p>
+<div class="codehilite"><pre><span class="n">custom</span><span class="p">(</span> <span class="n">muppet</span><span class="p">()</span> <span class="p">).</span><span class="n">toString</span><span class="p">()</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(&amp;(objectClass=inetOrgPerson)(departmentNumber=muppets))</em></p>
+<p>Which would match any inetOrgPerson with a departmentNumber of muppets.</p>
+<div class="codehilite"><pre><span class="n">and</span><span class="p">(</span> <span class="n">custom</span><span class="p">(</span> <span class="n">muppet</span><span class="p">()</span> <span class="p">),</span> <span class="n">equal</span><span class="p">(</span> &quot;<span class="n">cn</span>&quot;<span class="p">,</span> &quot;<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>&quot; <span class="p">)</span> <span class="p">);</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(&amp;(&amp;(objectClass=inetOrgPerson)(departmentNumber=muppets)(cn=Kermit The Frog))</em></p>
+<p>Which would match any inetOrgPerson with a departmentNumber of muppets whose common name is Kermit The Frog.</p>
 
 
     <div class="nav">