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>=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> "<span class="n">cn</span>"<span class="p">,</span> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <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> "<span class="n">cn</span>"<span class="p">,</span> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <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> "<span class="n">cn</span>"<span class="p">,</span> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <span class="p">)</span>
+ <span class="p">.</span><span class="n">setMatchingRule</span><span class="p">(</span> "<span class="n">caseExactMatch</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: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> "<span class="n">cn</span>"<span class="p">,</span> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <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> "<span class="n">caseExactMatch</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: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> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <span class="p">)</span>
+ <span class="p">.</span><span class="n">setMatchingRule</span><span class="p">(</span> "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" <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> "<span class="n">sn</span>"<span class="p">,</span> "<span class="n">mzzzzzz</span>" <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> "<span class="n">objectClass</span>"<span class="p">,</span> "<span class="n">inetOrgPerson</span>" <span class="p">),</span>
+ <span class="n">equal</span><span class="p">(</span> "<span class="n">departmentNumber</span>"<span class="p">,</span> "<span class="n">muppets</span>" <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>(&(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> "<span class="n">cn</span>"<span class="p">,</span> "<span class="n">Kermit</span> <span class="n">The</span> <span class="n">Frog</span>" <span class="p">)</span> <span class="p">);</span>
+</pre></div>
+
+
+<p>would result in the string: <em>(&(&(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">