
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
		<title>OpenCMIS Server Support 1.0.0 Reference Package org.apache.chemistry.opencmis.server.support.query</title>
		<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="style" />
	</head>
	<body>
		      	<div class="overview">
        	<ul>
          		<li>
            		<a href="../../../../../../../overview-summary.html">Overview</a>
          		</li>
          		<li class="selected">Package</li>
        	</ul>
      	</div>
      	<div class="framenoframe">
        	<ul>
          		<li>
            		<a href="../../../../../../../index.html" target="_top">FRAMES</a>
          		</li>
          		<li>
            		<a href="package-summary.html" target="_top">NO FRAMES</a>
          		</li>
        	</ul>
      	</div>
		
		      	<h2>Package org.apache.chemistry.opencmis.server.support.query</h2>

		<table class="summary">
        	<thead>
          		<tr>
            		<th>Class Summary</th>
          		</tr>
        	</thead>
        	<tbody>
        		            	<tr>
              		<td>
                		<a href="AbstractParserTest.html" target="classFrame">AbstractParserTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="StringUtilTest.html" target="classFrame">StringUtilTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TestCalendarHelper.html" target="classFrame">TestCalendarHelper</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TestParserExt.html" target="classFrame">TestParserExt</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TestParserStrict.html" target="classFrame">TestParserStrict</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TestParserTextSearch.html" target="classFrame">TestParserTextSearch</a>
              		</td>
            	</tr>
				        	</tbody>
      	</table>
		
		      	<div class="overview">
        	<ul>
          		<li>
            		<a href="../../../../../../../overview-summary.html">Overview</a>
          		</li>
          		<li class="selected">Package</li>
        	</ul>
      	</div>
      	<div class="framenoframe">
        	<ul>
          		<li>
            		<a href="../../../../../../../index.html" target="_top">FRAMES</a>
          		</li>
          		<li>
            		<a href="package-summary.html" target="_top">NO FRAMES</a>
          		</li>
        	</ul>
      	</div>
				<hr />
		Copyright &#169; 2009-2016 The Apache Software Foundation. All Rights Reserved.
	</body>
</html>