
<!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=ISO-8859-1" />
		<title>OpenCMIS Server Support 0.7.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 &copy; 2009-2012 The Apache Software Foundation. All Rights Reserved.
	</body>
</html>