<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>BusinessQueryManager</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="BusinessQueryManager";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/xml/registry/BusinessLifeCycleManager.html" title="interface in javax.xml.registry"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/registry/CapabilityProfile.html" title="interface in javax.xml.registry"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/xml/registry/BusinessQueryManager.html" target="_top">Frames</a></li>
<li><a href="BusinessQueryManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.xml.registry</div>
<h2 title="Interface BusinessQueryManager" class="title">Interface BusinessQueryManager</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../javax/xml/registry/QueryManager.html" title="interface in javax.xml.registry">QueryManager</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">BusinessQueryManager</span>
extends <a href="../../../javax/xml/registry/QueryManager.html" title="interface in javax.xml.registry">QueryManager</a></pre>
<div class="block">The BusinessQueryManager interface, which is exposed by the Registry Service, implements the business style query interface. It is also
 referred to as the focused query interface.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/registry/DeclarativeQueryManager.html" title="interface in javax.xml.registry"><code>DeclarativeQueryManager</code></a>, 
<a href="../../../javax/xml/registry/FindQualifier.html" title="interface in javax.xml.registry"><code>FindQualifier</code></a>, 
<a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry"><code>BulkResponse</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findAssociations-java.util.Collection-java.lang.String-java.lang.String-java.util.Collection-">findAssociations</a></span>(java.util.Collection&nbsp;findQualifiers,
                java.lang.String&nbsp;sourceObjectId,
                java.lang.String&nbsp;targetObjectId,
                java.util.Collection&nbsp;associationTypes)</code>
<div class="block">Finds all Association objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findCallerAssociations-java.util.Collection-java.lang.Boolean-java.lang.Boolean-java.util.Collection-">findCallerAssociations</a></span>(java.util.Collection&nbsp;findQualifiers,
                      java.lang.Boolean&nbsp;confirmedByCaller,
                      java.lang.Boolean&nbsp;confirmedByOtherParty,
                      java.util.Collection&nbsp;associationTypes)</code>
<div class="block">Finds all Association objects owned by the caller that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/infomodel/ClassificationScheme.html" title="interface in javax.xml.registry.infomodel">ClassificationScheme</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findClassificationSchemeByName-java.util.Collection-java.lang.String-">findClassificationSchemeByName</a></span>(java.util.Collection&nbsp;findQualifiers,
                              java.lang.String&nbsp;namePattern)</code>
<div class="block">Finds a ClassificationScheme by name based on the specified find
 qualifiers and name pattern.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findClassificationSchemes-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">findClassificationSchemes</a></span>(java.util.Collection&nbsp;findQualifiers,
                         java.util.Collection&nbsp;namePatterns,
                         java.util.Collection&nbsp;classifications,
                         java.util.Collection&nbsp;externalLinks)</code>
<div class="block">Finds all ClassificationScheme objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/infomodel/Concept.html" title="interface in javax.xml.registry.infomodel">Concept</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findConceptByPath-java.lang.String-">findConceptByPath</a></span>(java.lang.String&nbsp;path)</code>
<div class="block">Finds a Concept based on the path specified.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findConcepts-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">findConcepts</a></span>(java.util.Collection&nbsp;findQualifiers,
            java.util.Collection&nbsp;namePatterns,
            java.util.Collection&nbsp;classifications,
            java.util.Collection&nbsp;externalIdentifiers,
            java.util.Collection&nbsp;externalLinks)</code>
<div class="block">Finds all Concept objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findOrganizations-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">findOrganizations</a></span>(java.util.Collection&nbsp;findQualifiers,
                 java.util.Collection&nbsp;namePatterns,
                 java.util.Collection&nbsp;classifications,
                 java.util.Collection&nbsp;specifications,
                 java.util.Collection&nbsp;externalIdentifiers,
                 java.util.Collection&nbsp;externalLinks)</code>
<div class="block">Finds all Organization objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findRegistryPackages-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">findRegistryPackages</a></span>(java.util.Collection&nbsp;findQualifiers,
                    java.util.Collection&nbsp;namePatterns,
                    java.util.Collection&nbsp;classifications,
                    java.util.Collection&nbsp;externalLinks)</code>
<div class="block">Finds all RegistryPackage objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findServiceBindings-javax.xml.registry.infomodel.Key-java.util.Collection-java.util.Collection-java.util.Collection-">findServiceBindings</a></span>(<a href="../../../javax/xml/registry/infomodel/Key.html" title="interface in javax.xml.registry.infomodel">Key</a>&nbsp;serviceKey,
                   java.util.Collection&nbsp;findQualifiers,
                   java.util.Collection&nbsp;classifications,
                   java.util.Collection&nbsp;specifications)</code>
<div class="block">Finds all ServiceBinding objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/registry/BusinessQueryManager.html#findServices-javax.xml.registry.infomodel.Key-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">findServices</a></span>(<a href="../../../javax/xml/registry/infomodel/Key.html" title="interface in javax.xml.registry.infomodel">Key</a>&nbsp;orgKey,
            java.util.Collection&nbsp;findQualifiers,
            java.util.Collection&nbsp;namePatterns,
            java.util.Collection&nbsp;classifications,
            java.util.Collection&nbsp;specifications)</code>
<div class="block">Finds all Service objects that match all of the criteria specified by the parameters of this call.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.xml.registry.QueryManager">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;javax.xml.registry.<a href="../../../javax/xml/registry/QueryManager.html" title="interface in javax.xml.registry">QueryManager</a></h3>
<code><a href="../../../javax/xml/registry/QueryManager.html#getRegistryObject-java.lang.String-">getRegistryObject</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryObject-java.lang.String-java.lang.String-">getRegistryObject</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryObjects--">getRegistryObjects</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryObjects-java.util.Collection-">getRegistryObjects</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryObjects-java.util.Collection-java.lang.String-">getRegistryObjects</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryObjects-java.lang.String-">getRegistryObjects</a>, <a href="../../../javax/xml/registry/QueryManager.html#getRegistryService--">getRegistryService</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="findAssociations-java.util.Collection-java.lang.String-java.lang.String-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAssociations</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findAssociations(java.util.Collection&nbsp;findQualifiers,
                              java.lang.String&nbsp;sourceObjectId,
                              java.lang.String&nbsp;targetObjectId,
                              java.util.Collection&nbsp;associationTypes)
                       throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all Association objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters. If
 no parameters are specified, no Associations are returned.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>sourceObjectId</code> - a String that represents the id for a RegistryObject that must be the sourceObject of the Associations that match. This parameter is ignored if specified as null.</dd>
<dd><code>targetObjectId</code> - a String that represents the id for a RegistryObject that must be the targetObject of the Associations that match. This parameter is ignored if specified as null.</dd>
<dd><code>associationTypes</code> - a Collection of associationTypes. This is a logical OR operation across the collection. This parameter is ignored if specified as null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of Associations</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findCallerAssociations-java.util.Collection-java.lang.Boolean-java.lang.Boolean-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findCallerAssociations</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findCallerAssociations(java.util.Collection&nbsp;findQualifiers,
                                    java.lang.Boolean&nbsp;confirmedByCaller,
                                    java.lang.Boolean&nbsp;confirmedByOtherParty,
                                    java.util.Collection&nbsp;associationTypes)
                             throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all Association objects owned by the caller that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters. If
 no parameters are specified, no Associations are returned.

 <p>
 This call is sensitive to the identity of the caller and is a privileged operation that requires
 the caller to have provided its identity credentials to the Connection associated with this object.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>confirmedByCaller</code> - If true, provider must include Associations involving the caller that have been confirmed by the caller. If false, provider must include Associations involving the caller that have not been confirmed by the caller. This parameter is ignored if specified as null.</dd>
<dd><code>confirmedByOtherParty</code> - If true, provider must include Associations involving the caller that have been confirmed by the other party. If false, provider must include Associations involving the caller that have not been confirmed by the other party. This parameter is ignored if specified as null.</dd>
<dd><code>associationTypes</code> - a Collection of associationTypes. This is a logical OR operation across the collection. This parameter is ignored if specified as null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of Associations</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findOrganizations-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findOrganizations</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findOrganizations(java.util.Collection&nbsp;findQualifiers,
                               java.util.Collection&nbsp;namePatterns,
                               java.util.Collection&nbsp;classifications,
                               java.util.Collection&nbsp;specifications,
                               java.util.Collection&nbsp;externalIdentifiers,
                               java.util.Collection&nbsp;externalLinks)
                        throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all Organization objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePatterns</code> - a Collection that may consist of either String 
 or LocalizedString objects. Each String or value within a 
 LocalizedString is a partial or full name pattern with wildcard 
 searching as specified by the SQL-92 LIKE specification. Unless 
 otherwise specified in findQualifiers, this is a logical OR, and a 
 match on any name qualifies as a match for this criterion.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>specifications</code> - a Collection of RegistryObjects that represent
 (proxy) a technical specification. It is analogous to a tModelBag in 
 the UDDI specification. In the case of a UDDI provider, the 
 RegistryObject is a specification Concept. In the case of an ebXML 
 provider, the RegistryObject is likely to be an ExtrinsicObject.
 Unless otherwise specified in findQualifiers, this is a logical AND,
 and a match on all specified Specifications qualifies as a match
 for this criterion.</dd>
<dd><code>externalIdentifiers</code> - a Collection of ExternalIdentifier objects
 that provide an external identifier for the object using an 
 identification scheme such as DUNS. It is analogous to an 
 identifierBag in the UDDI specification. Unless otherwise specified 
 in findQualifiers, this is a logical AND, and a match on all 
 specified ExternalIdentifiers qualifies as a match for this 
 criterion. The programmer may use the 
 LifeCycleManager.createExternalIdentifier method to create a 
 transient ExternalIdentifier for use in this Collection.</dd>
<dd><code>externalLinks</code> - a Collection of ExternalLink objects that link 
 the object to content outside the registry. It is analogous to an
 overviewDoc in the UDDI specification. Unless otherwise specified in 
 findQualifiers, this is a logical AND, and a match on all specified 
 ExternalLinks qualifies as a match for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of Organizations</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findServices-javax.xml.registry.infomodel.Key-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findServices</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findServices(<a href="../../../javax/xml/registry/infomodel/Key.html" title="interface in javax.xml.registry.infomodel">Key</a>&nbsp;orgKey,
                          java.util.Collection&nbsp;findQualifiers,
                          java.util.Collection&nbsp;namePatterns,
                          java.util.Collection&nbsp;classifications,
                          java.util.Collection&nbsp;specifications)
                   throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all Service objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>orgKey</code> - Key identifying an Organization. Required for UDDI providers.</dd>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePatterns</code> - a Collection that may consist of either String 
 or LocalizedString objects. Each String or value within a 
 LocalizedString is a partial or full name pattern with wildcard 
 searching as specified by the SQL-92 LIKE specification. Unless 
 otherwise specified in findQualifiers, this is a logical OR, and a 
 match on any name qualifies as a match for this criterion.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>specifications</code> - a Collection of RegistryObjects that represent
 (proxy) a technical specification. It is analogous to a tModelBag in 
 the UDDI specification. In the case of a UDDI provider, the 
 RegistryObject is a specification Concept. In the case of an ebXML 
 provider, the RegistryObject is likely to be an ExtrinsicObject.
 Unless otherwise specified in findQualifiers, this is a logical AND,
 and a match on all specified Specifications qualifies as a match
 for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of Services</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findServiceBindings-javax.xml.registry.infomodel.Key-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findServiceBindings</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findServiceBindings(<a href="../../../javax/xml/registry/infomodel/Key.html" title="interface in javax.xml.registry.infomodel">Key</a>&nbsp;serviceKey,
                                 java.util.Collection&nbsp;findQualifiers,
                                 java.util.Collection&nbsp;classifications,
                                 java.util.Collection&nbsp;specifications)
                          throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all ServiceBinding objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceKey</code> - Key identifying a Service. Required for UDDI providers.</dd>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>specifications</code> - a Collection of RegistryObjects that represent
 (proxy) a technical specification. It is analogous to a tModelBag in 
 the UDDI specification. In the case of a UDDI provider, the 
 RegistryObject is a specification Concept. In the case of an ebXML 
 provider, the RegistryObject is likely to be an ExtrinsicObject.
 Unless otherwise specified in findQualifiers, this is a logical AND,
 and a match on all specified Specifications qualifies as a match
 for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of ServiceBindings</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findClassificationSchemes-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findClassificationSchemes</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findClassificationSchemes(java.util.Collection&nbsp;findQualifiers,
                                       java.util.Collection&nbsp;namePatterns,
                                       java.util.Collection&nbsp;classifications,
                                       java.util.Collection&nbsp;externalLinks)
                                throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all ClassificationScheme objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePatterns</code> - a Collection that may consist of either String 
 or LocalizedString objects. Each String or value within a 
 LocalizedString is a partial or full name pattern with wildcard 
 searching as specified by the SQL-92 LIKE specification. Unless 
 otherwise specified in findQualifiers, this is a logical OR, and a 
 match on any name qualifies as a match for this criterion.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>externalLinks</code> - a Collection of ExternalLink objects that link 
 the object to content outside the registry. It is analogous to an
 overviewDoc in the UDDI specification. Unless otherwise specified in 
 findQualifiers, this is a logical AND, and a match on all specified 
 ExternalLinks qualifies as a match for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of ClassificationSchemes</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findClassificationSchemeByName-java.util.Collection-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findClassificationSchemeByName</h4>
<pre><a href="../../../javax/xml/registry/infomodel/ClassificationScheme.html" title="interface in javax.xml.registry.infomodel">ClassificationScheme</a>&nbsp;findClassificationSchemeByName(java.util.Collection&nbsp;findQualifiers,
                                                    java.lang.String&nbsp;namePattern)
                                             throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds a ClassificationScheme by name based on the specified find
 qualifiers and name pattern.

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePattern</code> - a String that is a partial or full 
 name pattern with wildcard searching as specified by the SQL-92 LIKE
 specification</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ClassificationScheme matching the namePattern, or null
 if no match is found.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal 
 error.  Throws an InvalidRequestException if multiple matches are 
 found.</dd>
</dl>
</li>
</ul>
<a name="findConcepts-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findConcepts</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findConcepts(java.util.Collection&nbsp;findQualifiers,
                          java.util.Collection&nbsp;namePatterns,
                          java.util.Collection&nbsp;classifications,
                          java.util.Collection&nbsp;externalIdentifiers,
                          java.util.Collection&nbsp;externalLinks)
                   throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all Concept objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.


 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePatterns</code> - a Collection that may consist of either String 
 or LocalizedString objects. Each String or value within a 
 LocalizedString is a partial or full name pattern with wildcard 
 searching as specified by the SQL-92 LIKE specification. Unless 
 otherwise specified in findQualifiers, this is a logical OR, and a 
 match on any name qualifies as a match for this criterion.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>externalIdentifiers</code> - a Collection of ExternalIdentifier objects
 that provide an external identifier for the object using an 
 identification scheme such as DUNS. It is analogous to an 
 identifierBag in the UDDI specification. Unless otherwise specified 
 in findQualifiers, this is a logical AND, and a match on all 
 specified ExternalIdentifiers qualifies as a match for this 
 criterion. The programmer may use the 
 LifeCycleManager.createExternalIdentifier method to create a 
 transient ExternalIdentifier for use in this Collection.</dd>
<dd><code>externalLinks</code> - a Collection of ExternalLink objects that link 
 the object to content outside the registry. It is analogous to an
 overviewDoc in the UDDI specification. Unless otherwise specified in 
 findQualifiers, this is a logical AND, and a match on all specified 
 ExternalLinks qualifies as a match for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of Concepts</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findConceptByPath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findConceptByPath</h4>
<pre><a href="../../../javax/xml/registry/infomodel/Concept.html" title="interface in javax.xml.registry.infomodel">Concept</a>&nbsp;findConceptByPath(java.lang.String&nbsp;path)
                   throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds a Concept based on the path specified.
 If the specified path matches more than one Concept,
 the one that is most general (higher in the concept hierarchy) is returned.
 

 <p><DL><DT><B>Capability Level: 0 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - a canonical path expression, as defined in the JAXR specification, that identifies the Concept.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Concept found, or null if no match is found</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
<a name="findRegistryPackages-java.util.Collection-java.util.Collection-java.util.Collection-java.util.Collection-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>findRegistryPackages</h4>
<pre><a href="../../../javax/xml/registry/BulkResponse.html" title="interface in javax.xml.registry">BulkResponse</a>&nbsp;findRegistryPackages(java.util.Collection&nbsp;findQualifiers,
                                  java.util.Collection&nbsp;namePatterns,
                                  java.util.Collection&nbsp;classifications,
                                  java.util.Collection&nbsp;externalLinks)
                           throws <a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></pre>
<div class="block">Finds all RegistryPackage objects that match all of the criteria specified by the parameters of this call.
 This is a logical AND operation between all non-null parameters.

 <p><DL><DT><B>Capability Level: 1 </B></DL></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>findQualifiers</code> - a Collection of find qualifiers as defined by
 the FindQualifier interface, which specifies qualifiers that affect
 string matching, sorting, boolean predicate logic, and the like.</dd>
<dd><code>namePatterns</code> - a Collection that may consist of either String 
 or LocalizedString objects. Each String or value within a 
 LocalizedString is a partial or full name pattern with wildcard 
 searching as specified by the SQL-92 LIKE specification. Unless 
 otherwise specified in findQualifiers, this is a logical OR, and a 
 match on any name qualifies as a match for this criterion.</dd>
<dd><code>classifications</code> - a Collection of Classification objects that 
 classify the object. It is analogous to a catgegoryBag in the UDDI
 specification. Unless otherwise specified in findQualifiers, this is 
 a logical AND, and a match on all specified Classifications qualifies
 as a match for this criterion. The programmer may use the
 LifeCycleManager.createClassification method to create a transient 
 Classification for use in this Collection.</dd>
<dd><code>externalLinks</code> - a Collection of ExternalLink objects that link 
 the object to content outside the registry. It is analogous to an
 overviewDoc in the UDDI specification. Unless otherwise specified in 
 findQualifiers, this is a logical AND, and a match on all specified 
 ExternalLinks qualifies as a match for this criterion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a BulkResponse containing a Collection of RegistryPackages</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/registry/JAXRException.html" title="class in javax.xml.registry">JAXRException</a></code> - if the JAXR provider encounters an internal error</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/xml/registry/BusinessLifeCycleManager.html" title="interface in javax.xml.registry"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/registry/CapabilityProfile.html" title="interface in javax.xml.registry"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/xml/registry/BusinessQueryManager.html" target="_top">Frames</a></li>
<li><a href="BusinessQueryManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
