<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>InquiryHelper xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/juddi/api/impl/InquiryHelper.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Copyright 2001-2008 The Apache Software Foundation.</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed under the Apache License, Version 2.0 (the "License");</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * you may not use this file except in compliance with the License.</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juddi.api.impl;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> javax.persistence.EntityManager;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> javax.xml.ws.Holder;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.configuration.ConfigurationException;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.AppConfig;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.Property;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.mapping.MappingModelToApi;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.model.BindingTemplate;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FetchBindingTemplatesQuery;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FetchBusinessEntitiesQuery;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FetchBusinessServicesQuery;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FetchTModelsQuery;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBindingByCategoryGroupQuery;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBindingByCategoryQuery;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBindingByTModelKeyQuery;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByCategoryGroupQuery;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByCategoryQuery;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByCombinedCategoryQuery;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByDiscoveryURLQuery;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByIdentifierQuery;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByNameQuery;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByTModelKeyQuery;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindServiceByCategoryGroupQuery;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindServiceByCategoryQuery;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindServiceByCombinedCategoryQuery;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindServiceByNameQuery;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindServiceByTModelKeyQuery;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindTModelByCategoryGroupQuery;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindTModelByCategoryQuery;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindTModelByIdentifierQuery;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindTModelByNameQuery;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.util.FindQualifiers;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.ErrorMessage;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.InvalidKeyPassedException;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.BindingDetail;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.BusinessList;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.Direction;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindBinding;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindBusiness;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindRelatedBusinesses;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindService;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindTModel;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.ListDescription;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.Name;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.RelatedBusinessesList;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.ServiceList;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.TModelBag;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.TModelList;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> org.uddi.v3_service.DispositionReportFaultMessage;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment">/**Co</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment"> * Used to factor out inquiry functionality as it is used in more than one spot.</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment"> * </em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:jfaath@apache.org" target="alexandria_uri">mailto:jfaath@apache.org</a>"&gt;Jeff Faath&lt;/a&gt;</em>
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/juddi/api/impl/InquiryHelper.html">InquiryHelper</a> {
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Log logger = LogFactory.getLog(InquiryHelper.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  	
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;Object&gt; findBinding(FindBinding body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  		List&lt;Object&gt; keysFound = <strong class="jxr_keyword">new</strong> LinkedList&lt;Object&gt;();
<a class="jxr_linenumber" name="L88" href="#L88">88</a>                  <strong class="jxr_keyword">if</strong> (body.getServiceKey()!=<strong class="jxr_keyword">null</strong> &amp;&amp; body.getServiceKey().length() &gt; 0) {
<a class="jxr_linenumber" name="L89" href="#L89">89</a>                      keysFound = findBindingsByServiceKey(em, body.getServiceKey(), keysFound);
<a class="jxr_linenumber" name="L90" href="#L90">90</a>                  }
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  		
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  		<strong class="jxr_keyword">if</strong> (body.getTModelBag() == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  			body.setTModelBag(<strong class="jxr_keyword">new</strong> TModelBag());
<a class="jxr_linenumber" name="L94" href="#L94">94</a>                  <em class="jxr_comment">// First perform the embedded FindTModel search which will augment the tModel bag with any resulting tModel keys.</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  		doFindTModelEmbeddedSearch(em, body.getFindQualifiers(), body.getFindTModel(), body.getTModelBag());
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  		keysFound = FindBindingByTModelKeyQuery.select(em, findQualifiers, body.getTModelBag(), body.getServiceKey(), keysFound);
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  		keysFound = FindBindingByCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), body.getServiceKey(), keysFound);
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  		keysFound = FindBindingByCategoryGroupQuery.select(em, findQualifiers, body.getCategoryBag(), body.getServiceKey(), keysFound);
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  		
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 		<strong class="jxr_keyword">return</strong> keysFound;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 	}
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 	
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BindingDetail getBindingDetailFromKeys(FindBinding body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 		<strong class="jxr_keyword">return</strong> getBindingDetailFromKeys(body, findQualifiers, em, keysFound, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 	}
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 	
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BindingDetail getBindingDetailFromKeys(FindBinding body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound,
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 														 Date modifiedAfter, Date modifiedBefore, Holder&lt;Integer&gt; subscriptionStartIndex, Integer subscriptionMaxRows)
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 				   <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 		BindingDetail result = <strong class="jxr_keyword">new</strong> BindingDetail();
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 		ListDescription listDesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 		result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 		
<a class="jxr_linenumber" name="L115" href="#L115">115</a> 		<em class="jxr_comment">// Sort and retrieve the final results with paging taken into account</em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 		List&lt;?&gt; queryResults = FetchBindingTemplatesQuery.select(em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 		<em class="jxr_comment">// Set the currentIndex to 0 or the value of the subscriptionStartIndex</em>
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 		<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L120" href="#L120">120</a> 		<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong> &amp;&amp; subscriptionStartIndex.value != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L121" href="#L121">121</a> 			currentIndex = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a> 		<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L124" href="#L124">124</a> 		
<a class="jxr_linenumber" name="L125" href="#L125">125</a> 		<strong class="jxr_keyword">while</strong> (currentIndex &lt; queryResults.size()) {
<a class="jxr_linenumber" name="L126" href="#L126">126</a> 			Object item = queryResults.get(currentIndex);
<a class="jxr_linenumber" name="L127" href="#L127">127</a> 
<a class="jxr_linenumber" name="L128" href="#L128">128</a> 			org.apache.juddi.model.BindingTemplate modelBindingTemplate = (org.apache.juddi.model.BindingTemplate)item;
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 			org.uddi.api_v3.BindingTemplate apiBindingTemplate = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.BindingTemplate();
<a class="jxr_linenumber" name="L130" href="#L130">130</a> 			
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 			<strong class="jxr_keyword">if</strong> (modifiedAfter != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedAfter.after(modelBindingTemplate.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 				currentIndex++;
<a class="jxr_linenumber" name="L133" href="#L133">133</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 			}
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 			
<a class="jxr_linenumber" name="L136" href="#L136">136</a> 			<strong class="jxr_keyword">if</strong> (modifiedBefore != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedBefore.before(modelBindingTemplate.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 				currentIndex++;
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L139" href="#L139">139</a> 			}
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 			
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 			MappingModelToApi.mapBindingTemplate(modelBindingTemplate, apiBindingTemplate);
<a class="jxr_linenumber" name="L142" href="#L142">142</a> 			
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 			result.getBindingTemplate().add(apiBindingTemplate);
<a class="jxr_linenumber" name="L144" href="#L144">144</a> 
<a class="jxr_linenumber" name="L145" href="#L145">145</a> 			returnedRowCount++;
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 			<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop (applies to subscription calls only)</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a> 			<strong class="jxr_keyword">if</strong> (subscriptionMaxRows != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 				<strong class="jxr_keyword">if</strong> (returnedRowCount == subscriptionMaxRows)
<a class="jxr_linenumber" name="L149" href="#L149">149</a> 					<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L150" href="#L150">150</a> 			}
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 			currentIndex++;
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 		}
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a> 		<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the subscriptionStartIndex to the next index to start with.</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 		<em class="jxr_comment">// Otherwise, set it to null so the subscription call won't trigger chunk token generation. </em>
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 		<strong class="jxr_keyword">if</strong> (currentIndex &lt; (queryResults.size() - 1)) {
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L159" href="#L159">159</a> 				subscriptionStartIndex.value = currentIndex + 1;
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 			result.setTruncated(Boolean.TRUE);
<a class="jxr_linenumber" name="L161" href="#L161">161</a> 		}
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 		<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L163" href="#L163">163</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 				subscriptionStartIndex.value = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L165" href="#L165">165</a> 			result.setTruncated(Boolean.FALSE);
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 		}
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 		result.getListDescription().setListHead(currentIndex);
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                 result.getListDescription().setActualCount(result.getBindingTemplate().size());
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                 result.getListDescription().setIncludeCount(returnedRowCount);
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 	}	
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 	
<a class="jxr_linenumber" name="L173" href="#L173">173</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;Object&gt; findBusiness(FindBusiness body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 		List&lt;Object&gt; keysFound = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 		<em class="jxr_comment">// First perform the embedded FindTModel search which will augment the tModel bag with any resulting tModel keys.</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> 		<strong class="jxr_keyword">if</strong> (body.getTModelBag() == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L179" href="#L179">179</a> 			body.setTModelBag(<strong class="jxr_keyword">new</strong> TModelBag());
<a class="jxr_linenumber" name="L180" href="#L180">180</a> 		doFindTModelEmbeddedSearch(em, body.getFindQualifiers(), body.getFindTModel(), body.getTModelBag());
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 		
<a class="jxr_linenumber" name="L182" href="#L182">182</a> 		<em class="jxr_comment">// The embedded find_relatedBusinesses search is performed first.  This is done the same as the actual API call, except the resulting business keys are </em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a> 		<em class="jxr_comment">// extracted and placed in the keysFound array to restrict future searches to only those keys.</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a> 		<strong class="jxr_keyword">if</strong> (body.getFindRelatedBusinesses() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 			FindRelatedBusinesses frb = body.getFindRelatedBusinesses();
<a class="jxr_linenumber" name="L186" href="#L186">186</a> 			
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 			org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.RelatedBusinessInfos();
<a class="jxr_linenumber" name="L188" href="#L188">188</a> 			<strong class="jxr_keyword">if</strong> (body.getFindRelatedBusinesses().getBusinessKey() != <strong class="jxr_keyword">null</strong> ) {
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 				getRelatedBusinesses(em, Direction.FROM_KEY, frb.getBusinessKey(), frb.getKeyedReference(), relatedBusinessInfos);
<a class="jxr_linenumber" name="L190" href="#L190">190</a> 				getRelatedBusinesses(em, Direction.TO_KEY, frb.getBusinessKey(), frb.getKeyedReference(), relatedBusinessInfos);
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 			}
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 			<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (body.getFindRelatedBusinesses().getFromKey() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 				getRelatedBusinesses(em, Direction.FROM_KEY, frb.getFromKey(), frb.getKeyedReference(), relatedBusinessInfos);
<a class="jxr_linenumber" name="L194" href="#L194">194</a> 			<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (body.getFindRelatedBusinesses().getToKey() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L195" href="#L195">195</a> 				getRelatedBusinesses(em, Direction.TO_KEY, frb.getToKey(), frb.getKeyedReference(), relatedBusinessInfos);
<a class="jxr_linenumber" name="L196" href="#L196">196</a> 			
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 			List&lt;Object&gt; relatedBusinessKeys = <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;(0);
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 			<strong class="jxr_keyword">for</strong> (org.uddi.api_v3.RelatedBusinessInfo rbi : relatedBusinessInfos.getRelatedBusinessInfo())
<a class="jxr_linenumber" name="L199" href="#L199">199</a> 				relatedBusinessKeys.add(rbi.getBusinessKey());
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 			
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 			keysFound = relatedBusinessKeys;
<a class="jxr_linenumber" name="L202" href="#L202">202</a> 		}
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 		
<a class="jxr_linenumber" name="L204" href="#L204">204</a> 		keysFound = FindBusinessByTModelKeyQuery.select(em, findQualifiers, body.getTModelBag(), keysFound);
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 		keysFound = FindBusinessByIdentifierQuery.select(em, findQualifiers, body.getIdentifierBag(), keysFound);
<a class="jxr_linenumber" name="L206" href="#L206">206</a> 		keysFound = FindBusinessByDiscoveryURLQuery.select(em, findQualifiers, body.getDiscoveryURLs(), keysFound);
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         <strong class="jxr_keyword">if</strong> (findQualifiers.isCombineCategoryBags()) {
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             keysFound = FindBusinessByCombinedCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), keysFound);
<a class="jxr_linenumber" name="L209" href="#L209">209</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L210" href="#L210">210</a>             keysFound = FindBusinessByCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), keysFound);
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         }
<a class="jxr_linenumber" name="L212" href="#L212">212</a> 
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 		keysFound = FindBusinessByCategoryGroupQuery.select(em, findQualifiers, body.getCategoryBag(), keysFound);
<a class="jxr_linenumber" name="L214" href="#L214">214</a> 		keysFound = FindBusinessByNameQuery.select(em, findQualifiers, body.getName(), keysFound);
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 		
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 		<em class="jxr_comment">// If there no keys in the bag then remove the empty TModelBag</em>
<a class="jxr_linenumber" name="L217" href="#L217">217</a> 		<strong class="jxr_keyword">if</strong> (body.getTModelBag().getTModelKey().size()==0) body.setTModelBag(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 				
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 		<strong class="jxr_keyword">return</strong> keysFound;
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 	}
<a class="jxr_linenumber" name="L221" href="#L221">221</a> 
<a class="jxr_linenumber" name="L222" href="#L222">222</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BusinessList getBusinessListFromKeys(FindBusiness body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L223" href="#L223">223</a> 		<strong class="jxr_keyword">return</strong> getBusinessListFromKeys(body, findQualifiers, em, keysFound, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 	}
<a class="jxr_linenumber" name="L225" href="#L225">225</a> 	
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BusinessList getBusinessListFromKeys(FindBusiness body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound,
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 													   Date modifiedAfter, Date modifiedBefore, Holder&lt;Integer&gt; subscriptionStartIndex, Integer subscriptionMaxRows)
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 				   <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a> 		BusinessList result = <strong class="jxr_keyword">new</strong> BusinessList();
<a class="jxr_linenumber" name="L231" href="#L231">231</a> 		ListDescription listDesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L232" href="#L232">232</a> 		result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L233" href="#L233">233</a> 
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 		<em class="jxr_comment">// Sort and retrieve the final results taking paging into account</em>
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 		List&lt;?&gt; queryResults = FetchBusinessEntitiesQuery.select(em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
<a class="jxr_linenumber" name="L236" href="#L236">236</a>                 
<a class="jxr_linenumber" name="L237" href="#L237">237</a>                 <strong class="jxr_keyword">boolean</strong> enabled = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L238" href="#L238">238</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L239" href="#L239">239</a>                         <em class="jxr_comment">//AppConfig.reloadConfig();</em>
<a class="jxr_linenumber" name="L240" href="#L240">240</a>                        enabled= AppConfig.getConfiguration().getBoolean(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L241" href="#L241">241</a>                 } <strong class="jxr_keyword">catch</strong> (ConfigurationException ex) {
<a class="jxr_linenumber" name="L242" href="#L242">242</a>                         logger.error(ex);
<a class="jxr_linenumber" name="L243" href="#L243">243</a>                 }
<a class="jxr_linenumber" name="L244" href="#L244">244</a>                 <strong class="jxr_keyword">if</strong> (enabled) {
<a class="jxr_linenumber" name="L245" href="#L245">245</a>                         logger.info(<span class="jxr_string">"FindBusiness by tModelBag is enabled! Loaded from "</span> + AppConfig.getConfigFileURL());
<a class="jxr_linenumber" name="L246" href="#L246">246</a>                         List&lt;?&gt; serviceResults = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L247" href="#L247">247</a>                         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; queryResults.size(); i++) {
<a class="jxr_linenumber" name="L248" href="#L248">248</a>                                 org.apache.juddi.model.BusinessEntity be = (org.apache.juddi.model.BusinessEntity) queryResults.get(i);
<a class="jxr_linenumber" name="L249" href="#L249">249</a> 
<a class="jxr_linenumber" name="L250" href="#L250">250</a>                                 List&lt;Object&gt; keysIn = <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;();
<a class="jxr_linenumber" name="L251" href="#L251">251</a>                                 List&lt;org.apache.juddi.model.BusinessService&gt; services = be.getBusinessServices();
<a class="jxr_linenumber" name="L252" href="#L252">252</a>                                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; services.size(); j++) {
<a class="jxr_linenumber" name="L253" href="#L253">253</a>                                         keysIn.add(services.get(j).getEntityKey());
<a class="jxr_linenumber" name="L254" href="#L254">254</a>                                 }
<a class="jxr_linenumber" name="L255" href="#L255">255</a> 
<a class="jxr_linenumber" name="L256" href="#L256">256</a>                                 serviceResults = FindServiceByTModelKeyQuery.select(em, findQualifiers, body.getTModelBag(), <strong class="jxr_keyword">null</strong>, keysIn);
<a class="jxr_linenumber" name="L257" href="#L257">257</a>                                 <strong class="jxr_keyword">if</strong> (serviceResults == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L258" href="#L258">258</a>                                         be.setBusinessServices(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L259" href="#L259">259</a>                                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L260" href="#L260">260</a>                                         ListDescription ldesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L261" href="#L261">261</a>                                         result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L262" href="#L262">262</a>                                         List&lt;?&gt; srvcs = FetchBusinessServicesQuery.select(em, findQualifiers, serviceResults, body.getMaxRows(),
<a class="jxr_linenumber" name="L263" href="#L263">263</a>                                                 body.getListHead(), ldesc);
<a class="jxr_linenumber" name="L264" href="#L264">264</a>                                         be.setBusinessServices((List&lt;org.apache.juddi.model.BusinessService&gt;) srvcs);
<a class="jxr_linenumber" name="L265" href="#L265">265</a>                                 }
<a class="jxr_linenumber" name="L266" href="#L266">266</a>                         }
<a class="jxr_linenumber" name="L267" href="#L267">267</a>                 }
<a class="jxr_linenumber" name="L268" href="#L268">268</a>                 
<a class="jxr_linenumber" name="L269" href="#L269">269</a>                 
<a class="jxr_linenumber" name="L270" href="#L270">270</a> 		<strong class="jxr_keyword">if</strong> (queryResults != <strong class="jxr_keyword">null</strong> &amp;&amp; queryResults.size() &gt; 0)
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 			result.setBusinessInfos(<strong class="jxr_keyword">new</strong> org.uddi.api_v3.BusinessInfos());
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 		
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 		<em class="jxr_comment">// Set the currentIndex to 0 or the value of the subscriptionStartIndex</em>
<a class="jxr_linenumber" name="L274" href="#L274">274</a> 		<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 		<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong> &amp;&amp; subscriptionStartIndex.value != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 			currentIndex = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L277" href="#L277">277</a> 
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 		<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L279" href="#L279">279</a> 		
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 		<strong class="jxr_keyword">while</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; queryResults.size()) {
<a class="jxr_linenumber" name="L281" href="#L281">281</a> 			Object item = queryResults.get(currentIndex);
<a class="jxr_linenumber" name="L282" href="#L282">282</a> 
<a class="jxr_linenumber" name="L283" href="#L283">283</a> 			org.apache.juddi.model.BusinessEntity modelBusinessEntity = (org.apache.juddi.model.BusinessEntity)item;
<a class="jxr_linenumber" name="L284" href="#L284">284</a> 			org.uddi.api_v3.BusinessInfo apiBusinessInfo = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.BusinessInfo();
<a class="jxr_linenumber" name="L285" href="#L285">285</a> 			
<a class="jxr_linenumber" name="L286" href="#L286">286</a> 			<strong class="jxr_keyword">if</strong> (modifiedAfter != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedAfter.after(modelBusinessEntity.getModifiedIncludingChildren())){
<a class="jxr_linenumber" name="L287" href="#L287">287</a> 				currentIndex++;
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L289" href="#L289">289</a> 			}
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 			
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 			<strong class="jxr_keyword">if</strong> (modifiedBefore != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedBefore.before(modelBusinessEntity.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 				currentIndex++;
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L294" href="#L294">294</a> 			}
<a class="jxr_linenumber" name="L295" href="#L295">295</a> 			
<a class="jxr_linenumber" name="L296" href="#L296">296</a> 			MappingModelToApi.mapBusinessInfo(modelBusinessEntity, apiBusinessInfo);
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 			
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 			result.getBusinessInfos().getBusinessInfo().add(apiBusinessInfo);
<a class="jxr_linenumber" name="L299" href="#L299">299</a> 
<a class="jxr_linenumber" name="L300" href="#L300">300</a> 			returnedRowCount++;
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 			<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop (applies to subscription calls only)</em>
<a class="jxr_linenumber" name="L302" href="#L302">302</a> 			<strong class="jxr_keyword">if</strong> (subscriptionMaxRows != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L303" href="#L303">303</a> 				<strong class="jxr_keyword">if</strong> (returnedRowCount == subscriptionMaxRows)
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 					<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 			}
<a class="jxr_linenumber" name="L306" href="#L306">306</a> 
<a class="jxr_linenumber" name="L307" href="#L307">307</a> 			currentIndex++;
<a class="jxr_linenumber" name="L308" href="#L308">308</a> 		}
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 		<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the subscriptionStartIndex to the next index to start with.</em>
<a class="jxr_linenumber" name="L311" href="#L311">311</a> 		<em class="jxr_comment">// Otherwise, set it to null so the subscription call won't trigger chunk token generation. </em>
<a class="jxr_linenumber" name="L312" href="#L312">312</a> 		<strong class="jxr_keyword">if</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; (queryResults.size() - 1)) {
<a class="jxr_linenumber" name="L313" href="#L313">313</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 				subscriptionStartIndex.value = currentIndex + 1;
<a class="jxr_linenumber" name="L315" href="#L315">315</a> 			result.setTruncated(Boolean.TRUE);
<a class="jxr_linenumber" name="L316" href="#L316">316</a> 		}
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 		<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L318" href="#L318">318</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L319" href="#L319">319</a> 				subscriptionStartIndex.value = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L320" href="#L320">320</a> 			result.setTruncated(Boolean.FALSE);
<a class="jxr_linenumber" name="L321" href="#L321">321</a> 		}
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 	}
<a class="jxr_linenumber" name="L324" href="#L324">324</a> 	
<a class="jxr_linenumber" name="L325" href="#L325">325</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;?&gt; findService(FindService body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L326" href="#L326">326</a> 
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 		List&lt;Object&gt; keysFound = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L328" href="#L328">328</a> 
<a class="jxr_linenumber" name="L329" href="#L329">329</a> 		<em class="jxr_comment">// First perform the embedded FindTModel search which will augment the tModel bag with any resulting tModel keys.</em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 		<strong class="jxr_keyword">if</strong> (body.getTModelBag() == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L331" href="#L331">331</a> 			body.setTModelBag(<strong class="jxr_keyword">new</strong> TModelBag());
<a class="jxr_linenumber" name="L332" href="#L332">332</a> 		doFindTModelEmbeddedSearch(em, body.getFindQualifiers(), body.getFindTModel(), body.getTModelBag());
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 		
<a class="jxr_linenumber" name="L334" href="#L334">334</a> 		keysFound = FindServiceByTModelKeyQuery.select(em, findQualifiers, body.getTModelBag(), body.getBusinessKey(), keysFound);
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         <strong class="jxr_keyword">if</strong> (findQualifiers.isCombineCategoryBags()) {
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 		    keysFound = FindServiceByCombinedCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), body.getBusinessKey(), keysFound);
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 		} <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 			keysFound = FindServiceByCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), body.getBusinessKey(), keysFound);
<a class="jxr_linenumber" name="L339" href="#L339">339</a> 		}
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 		keysFound = FindServiceByCategoryGroupQuery.select(em, findQualifiers, body.getCategoryBag(), body.getBusinessKey(), keysFound);
<a class="jxr_linenumber" name="L341" href="#L341">341</a> 		
<a class="jxr_linenumber" name="L342" href="#L342">342</a> 		<strong class="jxr_keyword">if</strong> (body.getFindTModel()==<strong class="jxr_keyword">null</strong> &amp;&amp; body.getCategoryBag()==<strong class="jxr_keyword">null</strong> &amp;&amp; 
<a class="jxr_linenumber" name="L343" href="#L343">343</a> 				( body.getTModelBag()==<strong class="jxr_keyword">null</strong> || body.getTModelBag().getTModelKey().size() == 0) 
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 				&amp;&amp; body.getName().size() == 0 &amp;&amp; body.getBusinessKey() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L345" href="#L345">345</a> 			<em class="jxr_comment">//support searching for all services for a business</em>
<a class="jxr_linenumber" name="L346" href="#L346">346</a> 			findQualifiers.setApproximateMatch(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 			body.getName().add(<strong class="jxr_keyword">new</strong> Name(<span class="jxr_string">"%"</span>, <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="L348" href="#L348">348</a> 		}
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 		keysFound = FindServiceByNameQuery.select(em, findQualifiers, body.getName(), body.getBusinessKey(), keysFound);
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 		
<a class="jxr_linenumber" name="L351" href="#L351">351</a> 		<strong class="jxr_keyword">if</strong> (body.getTModelBag().getTModelKey().size()==0) body.setTModelBag(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L352" href="#L352">352</a> 		<strong class="jxr_keyword">return</strong> keysFound;
<a class="jxr_linenumber" name="L353" href="#L353">353</a> 	}
<a class="jxr_linenumber" name="L354" href="#L354">354</a> 	
<a class="jxr_linenumber" name="L355" href="#L355">355</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ServiceList getServiceListFromKeys(FindService body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L356" href="#L356">356</a> 		<strong class="jxr_keyword">return</strong> getServiceListFromKeys(body, findQualifiers, em, keysFound, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 	}
<a class="jxr_linenumber" name="L358" href="#L358">358</a> 
<a class="jxr_linenumber" name="L359" href="#L359">359</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ServiceList getServiceListFromKeys(FindService body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound,
<a class="jxr_linenumber" name="L360" href="#L360">360</a> 													 Date modifiedAfter, Date modifiedBefore, Holder&lt;Integer&gt; subscriptionStartIndex, Integer subscriptionMaxRows)
<a class="jxr_linenumber" name="L361" href="#L361">361</a> 				   <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 		ServiceList result = <strong class="jxr_keyword">new</strong> ServiceList();
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 		ListDescription listDesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L364" href="#L364">364</a> 		result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L365" href="#L365">365</a> 		
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 		<em class="jxr_comment">// Sort and retrieve the final results taking paging into account</em>
<a class="jxr_linenumber" name="L367" href="#L367">367</a> 		List&lt;?&gt; queryResults = FetchBusinessServicesQuery.select(em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
<a class="jxr_linenumber" name="L368" href="#L368">368</a> 		<strong class="jxr_keyword">if</strong> (queryResults != <strong class="jxr_keyword">null</strong> &amp;&amp; queryResults.size() &gt; 0)
<a class="jxr_linenumber" name="L369" href="#L369">369</a> 			result.setServiceInfos(<strong class="jxr_keyword">new</strong> org.uddi.api_v3.ServiceInfos());
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
<a class="jxr_linenumber" name="L371" href="#L371">371</a> 		<em class="jxr_comment">// Set the currentIndex to 0 or the value of the subscriptionStartIndex</em>
<a class="jxr_linenumber" name="L372" href="#L372">372</a> 		<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L373" href="#L373">373</a> 		<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong> &amp;&amp; subscriptionStartIndex.value != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L374" href="#L374">374</a> 			currentIndex = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L375" href="#L375">375</a> 
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 		<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 		<strong class="jxr_keyword">if</strong> (logger.isDebugEnabled()) logger.debug(<span class="jxr_string">"Period = "</span> + modifiedAfter + <span class="jxr_string">" ---- "</span> + modifiedBefore);
<a class="jxr_linenumber" name="L378" href="#L378">378</a> 		<strong class="jxr_keyword">while</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; queryResults.size()) {
<a class="jxr_linenumber" name="L379" href="#L379">379</a> 			Object item = queryResults.get(currentIndex);
<a class="jxr_linenumber" name="L380" href="#L380">380</a> 
<a class="jxr_linenumber" name="L381" href="#L381">381</a> 			org.apache.juddi.model.BusinessService modelBusinessService = (org.apache.juddi.model.BusinessService)item;
<a class="jxr_linenumber" name="L382" href="#L382">382</a> 			org.uddi.api_v3.ServiceInfo apiServiceInfo = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.ServiceInfo();
<a class="jxr_linenumber" name="L383" href="#L383">383</a> 			
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 			logger.debug(modelBusinessService.getEntityKey() + <span class="jxr_string">" is modified "</span> + modelBusinessService.getModifiedIncludingChildren() + <span class="jxr_string">" "</span> + modelBusinessService.getModifiedIncludingChildren().getTime() );
<a class="jxr_linenumber" name="L385" href="#L385">385</a> 			<strong class="jxr_keyword">if</strong> (modifiedAfter != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedAfter.after(modelBusinessService.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L386" href="#L386">386</a> 				currentIndex++;
<a class="jxr_linenumber" name="L387" href="#L387">387</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L388" href="#L388">388</a> 			}
<a class="jxr_linenumber" name="L389" href="#L389">389</a> 			
<a class="jxr_linenumber" name="L390" href="#L390">390</a> 			<strong class="jxr_keyword">if</strong> (modifiedBefore != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedBefore.before(modelBusinessService.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 				currentIndex++;
<a class="jxr_linenumber" name="L392" href="#L392">392</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L393" href="#L393">393</a> 			}
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 			MappingModelToApi.mapServiceInfo(modelBusinessService, apiServiceInfo);
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 			
<a class="jxr_linenumber" name="L396" href="#L396">396</a> 			result.getServiceInfos().getServiceInfo().add(apiServiceInfo);
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 
<a class="jxr_linenumber" name="L398" href="#L398">398</a> 			returnedRowCount++;
<a class="jxr_linenumber" name="L399" href="#L399">399</a> 			<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop (applies to subscription calls only)</em>
<a class="jxr_linenumber" name="L400" href="#L400">400</a> 			<strong class="jxr_keyword">if</strong> (subscriptionMaxRows != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L401" href="#L401">401</a> 				<strong class="jxr_keyword">if</strong> (returnedRowCount == subscriptionMaxRows)
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 					<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L403" href="#L403">403</a> 			}
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 			currentIndex++;
<a class="jxr_linenumber" name="L406" href="#L406">406</a> 		}
<a class="jxr_linenumber" name="L407" href="#L407">407</a> 
<a class="jxr_linenumber" name="L408" href="#L408">408</a> 		<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the subscriptionStartIndex to the next index to start with.</em>
<a class="jxr_linenumber" name="L409" href="#L409">409</a> 		<em class="jxr_comment">// Otherwise, set it to null so the subscription call won't trigger chunk token generation. </em>
<a class="jxr_linenumber" name="L410" href="#L410">410</a> 		<strong class="jxr_keyword">if</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; (queryResults.size() - 1)) {
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L412" href="#L412">412</a> 				subscriptionStartIndex.value = currentIndex + 1;
<a class="jxr_linenumber" name="L413" href="#L413">413</a> 			result.setTruncated(Boolean.TRUE);
<a class="jxr_linenumber" name="L414" href="#L414">414</a> 		}
<a class="jxr_linenumber" name="L415" href="#L415">415</a> 		<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L417" href="#L417">417</a> 				subscriptionStartIndex.value = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 			result.setTruncated(Boolean.FALSE);
<a class="jxr_linenumber" name="L419" href="#L419">419</a> 		}
<a class="jxr_linenumber" name="L420" href="#L420">420</a> 		
<a class="jxr_linenumber" name="L421" href="#L421">421</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L422" href="#L422">422</a> 	}
<a class="jxr_linenumber" name="L423" href="#L423">423</a> 
<a class="jxr_linenumber" name="L424" href="#L424">424</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;Object&gt; findTModel(FindTModel body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 		List&lt;Object&gt; keysFound = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L426" href="#L426">426</a> 
<a class="jxr_linenumber" name="L427" href="#L427">427</a> 		keysFound = FindTModelByIdentifierQuery.select(em, findQualifiers, body.getIdentifierBag(), keysFound);
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 		keysFound = FindTModelByCategoryQuery.select(em, findQualifiers, body.getCategoryBag(), keysFound);
<a class="jxr_linenumber" name="L429" href="#L429">429</a> 		keysFound = FindTModelByCategoryGroupQuery.select(em, findQualifiers, body.getCategoryBag(), keysFound);
<a class="jxr_linenumber" name="L430" href="#L430">430</a> 		keysFound = FindTModelByNameQuery.select(em, findQualifiers, body.getName(), keysFound);
<a class="jxr_linenumber" name="L431" href="#L431">431</a> 		
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 		<strong class="jxr_keyword">return</strong> keysFound;
<a class="jxr_linenumber" name="L433" href="#L433">433</a> 	}
<a class="jxr_linenumber" name="L434" href="#L434">434</a> 
<a class="jxr_linenumber" name="L435" href="#L435">435</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TModelList getTModelListFromKeys(FindTModel body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L436" href="#L436">436</a> 		<strong class="jxr_keyword">return</strong> getTModelListFromKeys(body, findQualifiers, em, keysFound, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L437" href="#L437">437</a> 	}
<a class="jxr_linenumber" name="L438" href="#L438">438</a> 	
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TModelList getTModelListFromKeys(FindTModel body, <a href="../../../../../org/apache/juddi/query/util/FindQualifiers.html">FindQualifiers</a> findQualifiers, EntityManager em, List&lt;?&gt; keysFound,
<a class="jxr_linenumber" name="L440" href="#L440">440</a> 												   Date modifiedAfter, Date modifiedBefore, Holder&lt;Integer&gt; subscriptionStartIndex, Integer subscriptionMaxRows)
<a class="jxr_linenumber" name="L441" href="#L441">441</a> 				   <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L442" href="#L442">442</a> 		TModelList result = <strong class="jxr_keyword">new</strong> TModelList();
<a class="jxr_linenumber" name="L443" href="#L443">443</a> 		ListDescription listDesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L444" href="#L444">444</a> 		result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L445" href="#L445">445</a> 
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 		<em class="jxr_comment">// Sort and retrieve the final results taking paging into account</em>
<a class="jxr_linenumber" name="L447" href="#L447">447</a> 		List&lt;?&gt; queryResults = FetchTModelsQuery.select(em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
<a class="jxr_linenumber" name="L448" href="#L448">448</a> 		<strong class="jxr_keyword">if</strong> (queryResults != <strong class="jxr_keyword">null</strong> &amp;&amp; queryResults.size() &gt; 0)
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 			result.setTModelInfos(<strong class="jxr_keyword">new</strong> org.uddi.api_v3.TModelInfos());
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 		
<a class="jxr_linenumber" name="L451" href="#L451">451</a> 		<em class="jxr_comment">// Set the currentIndex to 0 or the value of the subscriptionStartIndex</em>
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 		<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L453" href="#L453">453</a> 		<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong> &amp;&amp; subscriptionStartIndex.value != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L454" href="#L454">454</a> 			currentIndex = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L455" href="#L455">455</a> 
<a class="jxr_linenumber" name="L456" href="#L456">456</a> 		<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L457" href="#L457">457</a> 		
<a class="jxr_linenumber" name="L458" href="#L458">458</a> 		<strong class="jxr_keyword">while</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; queryResults.size()) {
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 			Object item = queryResults.get(currentIndex);
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 			
<a class="jxr_linenumber" name="L461" href="#L461">461</a> 			org.apache.juddi.model.Tmodel modelTModel = (org.apache.juddi.model.Tmodel)item;
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 			org.uddi.api_v3.TModelInfo apiTModelInfo = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.TModelInfo();
<a class="jxr_linenumber" name="L463" href="#L463">463</a> 			
<a class="jxr_linenumber" name="L464" href="#L464">464</a> 			<strong class="jxr_keyword">if</strong> (modifiedAfter != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedAfter.after(modelTModel.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 				currentIndex++;
<a class="jxr_linenumber" name="L466" href="#L466">466</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 			}
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 			
<a class="jxr_linenumber" name="L469" href="#L469">469</a> 			<strong class="jxr_keyword">if</strong> (modifiedBefore != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedBefore.before(modelTModel.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 				currentIndex++;
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 				<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L472" href="#L472">472</a> 			}
<a class="jxr_linenumber" name="L473" href="#L473">473</a> 			
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 			MappingModelToApi.mapTModelInfo(modelTModel, apiTModelInfo);
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 			
<a class="jxr_linenumber" name="L476" href="#L476">476</a> 			result.getTModelInfos().getTModelInfo().add(apiTModelInfo);
<a class="jxr_linenumber" name="L477" href="#L477">477</a> 			
<a class="jxr_linenumber" name="L478" href="#L478">478</a> 			returnedRowCount++;
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 			<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop (applies to subscription calls only)</em>
<a class="jxr_linenumber" name="L480" href="#L480">480</a> 			<strong class="jxr_keyword">if</strong> (subscriptionMaxRows != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 				<strong class="jxr_keyword">if</strong> (returnedRowCount == subscriptionMaxRows)
<a class="jxr_linenumber" name="L482" href="#L482">482</a> 					<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L483" href="#L483">483</a> 			}
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 			
<a class="jxr_linenumber" name="L485" href="#L485">485</a> 			currentIndex++;
<a class="jxr_linenumber" name="L486" href="#L486">486</a> 		}
<a class="jxr_linenumber" name="L487" href="#L487">487</a> 		
<a class="jxr_linenumber" name="L488" href="#L488">488</a> 		<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the subscriptionStartIndex to the next index to start with.</em>
<a class="jxr_linenumber" name="L489" href="#L489">489</a> 		<em class="jxr_comment">// Otherwise, set it to null so the subscription call won't trigger chunk token generation. </em>
<a class="jxr_linenumber" name="L490" href="#L490">490</a> 		<strong class="jxr_keyword">if</strong> (queryResults!=<strong class="jxr_keyword">null</strong> &amp;&amp; currentIndex &lt; (queryResults.size() - 1)) {
<a class="jxr_linenumber" name="L491" href="#L491">491</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L492" href="#L492">492</a> 				subscriptionStartIndex.value = currentIndex + 1;
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 			result.setTruncated(Boolean.TRUE);
<a class="jxr_linenumber" name="L494" href="#L494">494</a> 		}
<a class="jxr_linenumber" name="L495" href="#L495">495</a> 		<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L496" href="#L496">496</a> 			<strong class="jxr_keyword">if</strong> (subscriptionStartIndex != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L497" href="#L497">497</a> 				subscriptionStartIndex.value = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L498" href="#L498">498</a> 			result.setTruncated(Boolean.FALSE);
<a class="jxr_linenumber" name="L499" href="#L499">499</a> 		}
<a class="jxr_linenumber" name="L500" href="#L500">500</a> 		
<a class="jxr_linenumber" name="L501" href="#L501">501</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 	}
<a class="jxr_linenumber" name="L503" href="#L503">503</a> 	
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 	
<a class="jxr_linenumber" name="L505" href="#L505">505</a> 	<em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L506" href="#L506">506</a> <em class="jxr_comment">	 * Retrieves related businesses based on the focal business and the direction (fromKey or toKey).  The focal business is retrieved and then the</em>
<a class="jxr_linenumber" name="L507" href="#L507">507</a> <em class="jxr_comment">	 * appropriate publisher assertion collection is examined for matches.  The assertion must be "completed" and if a keyedReference is passed, it must</em>
<a class="jxr_linenumber" name="L508" href="#L508">508</a> <em class="jxr_comment">	 * match exactly.  Successful assertion matches are mapped to a RelationBusinessInfo structure and added to the passed in RelationalBusinessInfos </em>
<a class="jxr_linenumber" name="L509" href="#L509">509</a> <em class="jxr_comment">	 * structure.</em>
<a class="jxr_linenumber" name="L510" href="#L510">510</a> <em class="jxr_comment">	 */</em>
<a class="jxr_linenumber" name="L511" href="#L511">511</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> getRelatedBusinesses(EntityManager em, 
<a class="jxr_linenumber" name="L512" href="#L512">512</a> 											Direction direction, 
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 											String focalKey, 
<a class="jxr_linenumber" name="L514" href="#L514">514</a> 											org.uddi.api_v3.KeyedReference keyedRef,
<a class="jxr_linenumber" name="L515" href="#L515">515</a> 											org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos)
<a class="jxr_linenumber" name="L516" href="#L516">516</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L517" href="#L517">517</a> 		getRelatedBusinesses(em, direction, focalKey, keyedRef, relatedBusinessInfos, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L518" href="#L518">518</a> 	}
<a class="jxr_linenumber" name="L519" href="#L519">519</a> 	
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> getRelatedBusinesses(EntityManager em, 
<a class="jxr_linenumber" name="L521" href="#L521">521</a> 											Direction direction, 
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 											String focalKey, 
<a class="jxr_linenumber" name="L523" href="#L523">523</a> 											org.uddi.api_v3.KeyedReference keyedRef,
<a class="jxr_linenumber" name="L524" href="#L524">524</a> 											org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos,
<a class="jxr_linenumber" name="L525" href="#L525">525</a> 											Date modifiedAfter,
<a class="jxr_linenumber" name="L526" href="#L526">526</a> 											Date modifiedBefore)
<a class="jxr_linenumber" name="L527" href="#L527">527</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L528" href="#L528">528</a> 		<strong class="jxr_keyword">if</strong> (relatedBusinessInfos == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L529" href="#L529">529</a> 			relatedBusinessInfos = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.RelatedBusinessInfos();
<a class="jxr_linenumber" name="L530" href="#L530">530</a> 		org.apache.juddi.model.BusinessEntity focalBusiness = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L531" href="#L531">531</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L532" href="#L532">532</a> 			focalBusiness = em.find(org.apache.juddi.model.BusinessEntity.<strong class="jxr_keyword">class</strong>, focalKey);
<a class="jxr_linenumber" name="L533" href="#L533">533</a> 		} <strong class="jxr_keyword">catch</strong> (ClassCastException e) {}
<a class="jxr_linenumber" name="L534" href="#L534">534</a> 		<strong class="jxr_keyword">if</strong> (focalBusiness == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L535" href="#L535">535</a> 			<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidKeyPassedException.html">InvalidKeyPassedException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.invalidkey.BusinessNotFound"</span>, focalKey));
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 
<a class="jxr_linenumber" name="L537" href="#L537">537</a> 		List&lt;org.apache.juddi.model.PublisherAssertion&gt; pubAssertList = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L538" href="#L538">538</a> 		<strong class="jxr_keyword">if</strong> (direction == Direction.FROM_KEY)
<a class="jxr_linenumber" name="L539" href="#L539">539</a> 			pubAssertList = focalBusiness.getPublisherAssertionsForFromKey();
<a class="jxr_linenumber" name="L540" href="#L540">540</a> 		<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L541" href="#L541">541</a> 			pubAssertList = focalBusiness.getPublisherAssertionsForToKey();
<a class="jxr_linenumber" name="L542" href="#L542">542</a> 		
<a class="jxr_linenumber" name="L543" href="#L543">543</a> 		<strong class="jxr_keyword">if</strong> (pubAssertList != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 			<strong class="jxr_keyword">for</strong> (org.apache.juddi.model.PublisherAssertion modelPublisherAssertion : pubAssertList) {
<a class="jxr_linenumber" name="L545" href="#L545">545</a> 				<strong class="jxr_keyword">if</strong> (<span class="jxr_string">"true"</span>.equalsIgnoreCase(modelPublisherAssertion.getFromCheck()) &amp;&amp; <span class="jxr_string">"true"</span>.equalsIgnoreCase(modelPublisherAssertion.getToCheck())) {
<a class="jxr_linenumber" name="L546" href="#L546">546</a> 					<strong class="jxr_keyword">if</strong> (keyedRef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L547" href="#L547">547</a> 						<strong class="jxr_keyword">if</strong>(!keyedRef.getTModelKey().equals(modelPublisherAssertion.getTmodelKey()) || 
<a class="jxr_linenumber" name="L548" href="#L548">548</a> 						   !keyedRef.getKeyName().equals(modelPublisherAssertion.getKeyName()) || 
<a class="jxr_linenumber" name="L549" href="#L549">549</a> 						   !keyedRef.getKeyValue().equals(modelPublisherAssertion.getKeyValue())) {
<a class="jxr_linenumber" name="L550" href="#L550">550</a> 							<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L551" href="#L551">551</a> 						}
<a class="jxr_linenumber" name="L552" href="#L552">552</a> 					}
<a class="jxr_linenumber" name="L553" href="#L553">553</a> 					
<a class="jxr_linenumber" name="L554" href="#L554">554</a> 					org.apache.juddi.model.BusinessEntity modelRelatedBusiness  = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L555" href="#L555">555</a> 					<strong class="jxr_keyword">if</strong> (direction == Direction.FROM_KEY)
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 						modelRelatedBusiness = em.find(org.apache.juddi.model.BusinessEntity.<strong class="jxr_keyword">class</strong>, modelPublisherAssertion.getId().getToKey());
<a class="jxr_linenumber" name="L557" href="#L557">557</a> 					<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 						modelRelatedBusiness = em.find(org.apache.juddi.model.BusinessEntity.<strong class="jxr_keyword">class</strong>, modelPublisherAssertion.getId().getFromKey());
<a class="jxr_linenumber" name="L559" href="#L559">559</a> 					
<a class="jxr_linenumber" name="L560" href="#L560">560</a> 					<strong class="jxr_keyword">if</strong> (modifiedAfter != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedAfter.after(modelRelatedBusiness.getModifiedIncludingChildren()))
<a class="jxr_linenumber" name="L561" href="#L561">561</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L562" href="#L562">562</a> 					
<a class="jxr_linenumber" name="L563" href="#L563">563</a> 					<strong class="jxr_keyword">if</strong> (modifiedBefore != <strong class="jxr_keyword">null</strong> &amp;&amp; modifiedBefore.before(modelRelatedBusiness.getModifiedIncludingChildren()))
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L565" href="#L565">565</a> 					
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 					org.uddi.api_v3.RelatedBusinessInfo apiRelatedBusinessInfo = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.RelatedBusinessInfo();
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a> 					MappingModelToApi.mapRelatedBusinessInfo(modelPublisherAssertion, modelRelatedBusiness, direction, apiRelatedBusinessInfo);
<a class="jxr_linenumber" name="L569" href="#L569">569</a> 					
<a class="jxr_linenumber" name="L570" href="#L570">570</a> 					relatedBusinessInfos.getRelatedBusinessInfo().add(apiRelatedBusinessInfo);
<a class="jxr_linenumber" name="L571" href="#L571">571</a> 				}
<a class="jxr_linenumber" name="L572" href="#L572">572</a> 			}
<a class="jxr_linenumber" name="L573" href="#L573">573</a> 		}
<a class="jxr_linenumber" name="L574" href="#L574">574</a> 		
<a class="jxr_linenumber" name="L575" href="#L575">575</a> 	}
<a class="jxr_linenumber" name="L576" href="#L576">576</a> 
<a class="jxr_linenumber" name="L577" href="#L577">577</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RelatedBusinessesList getRelatedBusinessesList(FindRelatedBusinesses body, EntityManager em) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L578" href="#L578">578</a> 		<strong class="jxr_keyword">return</strong> getRelatedBusinessesList(body, em, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L579" href="#L579">579</a> 	}
<a class="jxr_linenumber" name="L580" href="#L580">580</a> 	
<a class="jxr_linenumber" name="L581" href="#L581">581</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RelatedBusinessesList getRelatedBusinessesList(FindRelatedBusinesses body, EntityManager em, Date modifiedAfter, Date modifiedBefore) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L582" href="#L582">582</a> 		RelatedBusinessesList result = <strong class="jxr_keyword">new</strong> RelatedBusinessesList();
<a class="jxr_linenumber" name="L583" href="#L583">583</a> 		result.setBusinessKey(body.getBusinessKey());
<a class="jxr_linenumber" name="L584" href="#L584">584</a> 		ListDescription listDesc = <strong class="jxr_keyword">new</strong> ListDescription();
<a class="jxr_linenumber" name="L585" href="#L585">585</a> 		result.setListDescription(listDesc);
<a class="jxr_linenumber" name="L586" href="#L586">586</a> 		
<a class="jxr_linenumber" name="L587" href="#L587">587</a> 		<em class="jxr_comment">// Either one of the businessKey, fromKey or toKey will be passed.  This is considered the "focal" business to which related businesses must be</em>
<a class="jxr_linenumber" name="L588" href="#L588">588</a> 		<em class="jxr_comment">// found.  Rather than use a query, it seems simpler to take advantage of the model's publisher assertion collections.</em>
<a class="jxr_linenumber" name="L589" href="#L589">589</a> 		org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.RelatedBusinessInfos();
<a class="jxr_linenumber" name="L590" href="#L590">590</a> 		<strong class="jxr_keyword">if</strong> (body.getBusinessKey() != <strong class="jxr_keyword">null</strong> ) {
<a class="jxr_linenumber" name="L591" href="#L591">591</a> 			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
<a class="jxr_linenumber" name="L592" href="#L592">592</a> 			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
<a class="jxr_linenumber" name="L593" href="#L593">593</a> 		}
<a class="jxr_linenumber" name="L594" href="#L594">594</a> 		<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (body.getFromKey() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L595" href="#L595">595</a> 			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getFromKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
<a class="jxr_linenumber" name="L596" href="#L596">596</a> 		    result.setBusinessKey(body.getFromKey());
<a class="jxr_linenumber" name="L597" href="#L597">597</a> 		} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (body.getToKey() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L598" href="#L598">598</a> 			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getToKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
<a class="jxr_linenumber" name="L599" href="#L599">599</a>             result.setBusinessKey(body.getToKey());
<a class="jxr_linenumber" name="L600" href="#L600">600</a> 		}
<a class="jxr_linenumber" name="L601" href="#L601">601</a> 		<strong class="jxr_keyword">if</strong> (relatedBusinessInfos.getRelatedBusinessInfo().size() &gt; 0) {
<a class="jxr_linenumber" name="L602" href="#L602">602</a> 			<em class="jxr_comment">// TODO: Do proper pagination!</em>
<a class="jxr_linenumber" name="L603" href="#L603">603</a> 			listDesc.setActualCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
<a class="jxr_linenumber" name="L604" href="#L604">604</a> 			listDesc.setIncludeCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 			listDesc.setListHead(1);
<a class="jxr_linenumber" name="L606" href="#L606">606</a> 			
<a class="jxr_linenumber" name="L607" href="#L607">607</a> 			result.setRelatedBusinessInfos(relatedBusinessInfos);
<a class="jxr_linenumber" name="L608" href="#L608">608</a> 		}
<a class="jxr_linenumber" name="L609" href="#L609">609</a> 		
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L611" href="#L611">611</a> 	}
<a class="jxr_linenumber" name="L612" href="#L612">612</a> 		
<a class="jxr_linenumber" name="L613" href="#L613">613</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L614" href="#L614">614</a> <em class="jxr_javadoccomment">	 * Performs the necessary queries for the find_tModel search and adds resulting tModel keys to the tModelBag provided.</em>
<a class="jxr_linenumber" name="L615" href="#L615">615</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L616" href="#L616">616</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> doFindTModelEmbeddedSearch(EntityManager em, 
<a class="jxr_linenumber" name="L617" href="#L617">617</a> 											org.uddi.api_v3.FindQualifiers fq, 
<a class="jxr_linenumber" name="L618" href="#L618">618</a> 											FindTModel findTmodel, 
<a class="jxr_linenumber" name="L619" href="#L619">619</a> 											TModelBag tmodelBag)
<a class="jxr_linenumber" name="L620" href="#L620">620</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a> 		
<a class="jxr_linenumber" name="L623" href="#L623">623</a> 		<strong class="jxr_keyword">if</strong> (findTmodel != <strong class="jxr_keyword">null</strong> &amp;&amp; tmodelBag != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 			org.apache.juddi.query.util.FindQualifiers findQualifiers = <strong class="jxr_keyword">new</strong> org.apache.juddi.query.util.FindQualifiers();
<a class="jxr_linenumber" name="L625" href="#L625">625</a> 			findQualifiers.mapApiFindQualifiers(findTmodel.getFindQualifiers());
<a class="jxr_linenumber" name="L626" href="#L626">626</a> 
<a class="jxr_linenumber" name="L627" href="#L627">627</a> 			
<a class="jxr_linenumber" name="L628" href="#L628">628</a> 			List&lt;Object&gt; tmodelKeysFound = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L629" href="#L629">629</a> 			tmodelKeysFound = FindTModelByIdentifierQuery.select(em, findQualifiers, findTmodel.getIdentifierBag(), tmodelKeysFound);
<a class="jxr_linenumber" name="L630" href="#L630">630</a> 			tmodelKeysFound = FindTModelByCategoryQuery.select(em, findQualifiers, findTmodel.getCategoryBag(), tmodelKeysFound);
<a class="jxr_linenumber" name="L631" href="#L631">631</a> 			tmodelKeysFound = FindTModelByCategoryGroupQuery.select(em, findQualifiers, findTmodel.getCategoryBag(), tmodelKeysFound);
<a class="jxr_linenumber" name="L632" href="#L632">632</a> 			tmodelKeysFound = FindTModelByNameQuery.select(em, findQualifiers, findTmodel.getName(), tmodelKeysFound);
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 			
<a class="jxr_linenumber" name="L634" href="#L634">634</a> 			<strong class="jxr_keyword">if</strong> (tmodelKeysFound != <strong class="jxr_keyword">null</strong> &amp;&amp; tmodelKeysFound.size() &gt; 0) {
<a class="jxr_linenumber" name="L635" href="#L635">635</a> 				<strong class="jxr_keyword">for</strong> (Object item : tmodelKeysFound)
<a class="jxr_linenumber" name="L636" href="#L636">636</a> 					tmodelBag.getTModelKey().add((String)item);
<a class="jxr_linenumber" name="L637" href="#L637">637</a> 			}
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 		}
<a class="jxr_linenumber" name="L639" href="#L639">639</a> 	}
<a class="jxr_linenumber" name="L640" href="#L640">640</a> 
<a class="jxr_linenumber" name="L641" href="#L641">641</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Object&gt; findBindingsByServiceKey(EntityManager em, String serviceKey, List&lt;Object&gt; keysFound) {
<a class="jxr_linenumber" name="L642" href="#L642">642</a>         org.apache.juddi.model.BusinessService modelBusinessService=em.find(org.apache.juddi.model.BusinessService.<strong class="jxr_keyword">class</strong>, serviceKey);
<a class="jxr_linenumber" name="L643" href="#L643">643</a>         <strong class="jxr_keyword">for</strong> (BindingTemplate bt : modelBusinessService.getBindingTemplates()){
<a class="jxr_linenumber" name="L644" href="#L644">644</a>             keysFound.add(bt.getEntityKey());
<a class="jxr_linenumber" name="L645" href="#L645">645</a>         }
<a class="jxr_linenumber" name="L646" href="#L646">646</a>         <strong class="jxr_keyword">return</strong> keysFound;
<a class="jxr_linenumber" name="L647" href="#L647">647</a>     }
<a class="jxr_linenumber" name="L648" href="#L648">648</a> 	
<a class="jxr_linenumber" name="L649" href="#L649">649</a> 	
<a class="jxr_linenumber" name="L650" href="#L650">650</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2004&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
