<!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>UDDISubscriptionImpl xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/juddi/api/impl/UDDISubscriptionImpl.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>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.juddi.api.impl;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.UUID;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> javax.jws.WebService;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> javax.persistence.EntityManager;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> javax.persistence.EntityTransaction;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.JAXBException;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> javax.xml.datatype.DatatypeConfigurationException;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> javax.xml.datatype.DatatypeFactory;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> javax.xml.ws.Holder;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.configuration.ConfigurationException;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.api.util.QueryStatus;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.api.util.SubscriptionQuery;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.AppConfig;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.PersistenceManager;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.Property;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.jaxb.JAXBMarshaller;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.mapping.MappingApiToModel;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.mapping.MappingModelToApi;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.model.SubscriptionChunkToken;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.model.SubscriptionMatch;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.model.UddiEntityPublisher;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindBusinessByPublisherQuery;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.query.FindSubscriptionByPublisherQuery;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.ErrorMessage;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.FatalErrorException;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.InvalidValueException;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.validation.ValidateSubscription;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.AssertionStatusReport;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.BindingDetail;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.BusinessDetail;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.BusinessList;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindBinding;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindBusiness;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindRelatedBusinesses;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindService;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.FindTModel;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetAssertionStatusReport;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetBindingDetail;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetBusinessDetail;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetServiceDetail;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetTModelDetail;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.RelatedBusinessesList;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.ServiceDetail;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.ServiceList;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.TModelDetail;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.TModelList;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.DeleteSubscription;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.GetSubscriptionResults;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.KeyBag;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.Subscription;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.SubscriptionFilter;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> org.uddi.sub_v3.SubscriptionResultsList;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> org.uddi.v3_service.DispositionReportFaultMessage;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> org.uddi.v3_service.UDDISubscriptionPortType;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment"> * This is jUDDI's implementation of the UDDIv3 Subscription API</em>
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  @WebService(serviceName=<span class="jxr_string">"UDDISubscriptionService"</span>, 
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  			endpointInterface=<span class="jxr_string">"org.uddi.v3_service.UDDISubscriptionPortType"</span>,
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  			targetNamespace = <span class="jxr_string">"urn:uddi-org:api_v3_portType"</span>)
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/juddi/api/impl/UDDISubscriptionImpl.html">UDDISubscriptionImpl</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/juddi/api/impl/AuthenticatedService.html">AuthenticatedService</a> <strong class="jxr_keyword">implements</strong> UDDISubscriptionPortType {
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Log logger = LogFactory.getLog(UDDISubscriptionImpl.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> DEFAULT_SUBSCRIPTIONEXPIRATION_DAYS = 30;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> DEFAULT_CHUNKEXPIRATION_MINUTES = 5;
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CHUNK_TOKEN_PREFIX = <span class="jxr_string">"chunktoken:"</span>;
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/juddi/api/impl/UDDIServiceCounter.html">UDDIServiceCounter</a> serviceCounter;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/juddi/api/impl/UDDISubscriptionImpl.html">UDDISubscriptionImpl</a>() {
<a class="jxr_linenumber" name="L100" href="#L100">100</a>             <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             serviceCounter = ServiceCounterLifecycleResource.getServiceCounter(<strong class="jxr_keyword">this</strong>.getClass());
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         }
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 	
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteSubscription(DeleteSubscription body)
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 	        <strong class="jxr_keyword">long</strong> startTime = System.currentTimeMillis();
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 		EntityManager em = PersistenceManager.getEntityManager();
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 		EntityTransaction tx = em.getTransaction();
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 			tx.begin();
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 	
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 			UddiEntityPublisher publisher = <strong class="jxr_keyword">this</strong>.getEntityPublisher(em, body.getAuthInfo());
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 			<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/validation/ValidateSubscription.html">ValidateSubscription</a>(publisher).validateDeleteSubscription(em, body);
<a class="jxr_linenumber" name="L115" href="#L115">115</a> 			
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 	        List&lt;String&gt; subscriptionKeyList = body.getSubscriptionKey();
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 	        <strong class="jxr_keyword">for</strong> (String subscriptionKey : subscriptionKeyList) {
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 	                Object obj = em.find(org.apache.juddi.model.Subscription.<strong class="jxr_keyword">class</strong>, subscriptionKey);
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	                em.remove(obj);
<a class="jxr_linenumber" name="L120" href="#L120">120</a> 	        }
<a class="jxr_linenumber" name="L121" href="#L121">121</a> 	
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 	        tx.commit();
<a class="jxr_linenumber" name="L123" href="#L123">123</a>                 <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                 serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION, 
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                         QueryStatus.SUCCESS, procTime);
<a class="jxr_linenumber" name="L126" href="#L126">126</a>                 } <strong class="jxr_keyword">catch</strong> (DispositionReportFaultMessage drfm) {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>                     <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L128" href="#L128">128</a>                     serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION, 
<a class="jxr_linenumber" name="L129" href="#L129">129</a>                             QueryStatus.FAILED, procTime);                      
<a class="jxr_linenumber" name="L130" href="#L130">130</a>                     <strong class="jxr_keyword">throw</strong> drfm;                                                                                                 
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 		} <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 			<strong class="jxr_keyword">if</strong> (tx.isActive()) {
<a class="jxr_linenumber" name="L133" href="#L133">133</a> 				tx.rollback();
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 			}
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 			em.close();
<a class="jxr_linenumber" name="L136" href="#L136">136</a> 		}
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 	}
<a class="jxr_linenumber" name="L138" href="#L138">138</a>    
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     <strong class="jxr_keyword">public</strong> SubscriptionResultsList getSubscriptionResults(GetSubscriptionResults body) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L140" href="#L140">140</a>     	<strong class="jxr_keyword">return</strong> getSubscriptionResults(body, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L141" href="#L141">141</a>     }
<a class="jxr_linenumber" name="L142" href="#L142">142</a> 	<em class="jxr_comment">/* (non-Javadoc)</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_comment">	 * @see org.uddi.v3_service.UDDISubscriptionPortType#getSubscriptionResults(org.uddi.sub_v3.GetSubscriptionResults)</em>
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_comment">	 * </em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_comment">	 * Notes: Does it make sense to refresh the subscription matches on a call to this method?  I don't think so, the user theoretically had</em>
<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_comment">	 * a set of entities in mind when the subscription was saved and the snapshot should remain just that - a snapshot of the entities at the</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_comment">	 * time of the subscription save.  The result of this policy is that if an entity is deleted, that deleted result will appear in the keyBag</em>
<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_comment">	 * on every call to this method.  To resolve this, the user can renew the subscription at which time the "match" snapshot will be refreshed.</em>
<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_comment">	 * </em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_comment">	 * The WS needs to be authenticated (null publisher), however the notificationSubscriber is calling this method also. The</em>
<a class="jxr_linenumber" name="L151" href="#L151">151</a> <em class="jxr_comment">	 * notificationSubscriber will pass in the publisher and this method will work in unauthenticated mode.</em>
<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em class="jxr_comment">	 */</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 	@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 	<strong class="jxr_keyword">public</strong> SubscriptionResultsList getSubscriptionResults(GetSubscriptionResults body, <a href="../../../../../org/apache/juddi/model/UddiEntityPublisher.html">UddiEntityPublisher</a> publisher) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L155" href="#L155">155</a>                 <strong class="jxr_keyword">long</strong> startTime = System.currentTimeMillis();
<a class="jxr_linenumber" name="L156" href="#L156">156</a>             
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 		EntityManager em = PersistenceManager.getEntityManager();
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 		EntityTransaction tx = em.getTransaction();
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 	        tx.begin();
<a class="jxr_linenumber" name="L161" href="#L161">161</a> 	        
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 			<strong class="jxr_keyword">if</strong> (publisher==<strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L163" href="#L163">163</a> 				publisher = <strong class="jxr_keyword">this</strong>.getEntityPublisher(em, body.getAuthInfo());
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 				<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/validation/ValidateSubscription.html">ValidateSubscription</a>(publisher).validateGetSubscriptionResults(em, body);
<a class="jxr_linenumber" name="L165" href="#L165">165</a> 			}
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 			
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 			org.apache.juddi.model.Subscription modelSubscription = em.find(org.apache.juddi.model.Subscription.<strong class="jxr_keyword">class</strong>, body.getSubscriptionKey());
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 			SubscriptionFilter subscriptionFilter = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L169" href="#L169">169</a> 			<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 				subscriptionFilter = (SubscriptionFilter)JAXBMarshaller.unmarshallFromString(modelSubscription.getSubscriptionFilter(), JAXBMarshaller.PACKAGE_SUBSCRIPTION);
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 			} 
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 			<strong class="jxr_keyword">catch</strong> (JAXBException e) {
<a class="jxr_linenumber" name="L173" href="#L173">173</a> 				logger.error(<span class="jxr_string">"JAXB Exception while unmarshalling subscription filter"</span>, e);
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 				<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/FatalErrorException.html">FatalErrorException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.Unspecified"</span>));
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 			}
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 			<strong class="jxr_keyword">if</strong> (logger.isDebugEnabled()) logger.debug(<span class="jxr_string">"filter="</span> + modelSubscription.getSubscriptionFilter());
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 			
<a class="jxr_linenumber" name="L178" href="#L178">178</a> 			SubscriptionResultsList result = <strong class="jxr_keyword">new</strong> SubscriptionResultsList();
<a class="jxr_linenumber" name="L179" href="#L179">179</a>                         result.setChunkToken(<span class="jxr_string">"0"</span>);
<a class="jxr_linenumber" name="L180" href="#L180">180</a>                         <em class="jxr_comment">//chunkToken:  Optional element used to retrieve subsequent groups of data when the first invocation of this API indicates more data is available.  This occurs when a chunkToken is returned whose value is not "0" in the validValuesList structure described in the next section.  To retrieve the next chunk of data, the chunkToken returned should be used as an argument to the next invocation of this API.</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 			result.setCoveragePeriod(body.getCoveragePeriod());
<a class="jxr_linenumber" name="L182" href="#L182">182</a> 	
<a class="jxr_linenumber" name="L183" href="#L183">183</a> 			<em class="jxr_comment">// The subscription structure is required output for the results</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a> 			org.uddi.sub_v3.Subscription apiSubscription = <strong class="jxr_keyword">new</strong> org.uddi.sub_v3.Subscription();
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 			MappingModelToApi.mapSubscription(modelSubscription, apiSubscription);
<a class="jxr_linenumber" name="L186" href="#L186">186</a> 			result.setSubscription(apiSubscription);
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 			
<a class="jxr_linenumber" name="L188" href="#L188">188</a> 			Date startPointDate = <strong class="jxr_keyword">new</strong> Date(body.getCoveragePeriod().getStartPoint().toGregorianCalendar().getTimeInMillis());
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 			Date endPointDate = <strong class="jxr_keyword">new</strong> Date(body.getCoveragePeriod().getEndPoint().toGregorianCalendar().getTimeInMillis());
<a class="jxr_linenumber" name="L190" href="#L190">190</a> 	
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 			Integer chunkData = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 			<strong class="jxr_keyword">if</strong> (body.getChunkToken() != <strong class="jxr_keyword">null</strong> &amp;&amp; body.getChunkToken().length() &gt; 0) {
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 				SubscriptionChunkToken chunkToken = em.find(SubscriptionChunkToken.<strong class="jxr_keyword">class</strong>, body.getChunkToken());
<a class="jxr_linenumber" name="L194" href="#L194">194</a> 				
<a class="jxr_linenumber" name="L195" href="#L195">195</a> 				<strong class="jxr_keyword">if</strong> (chunkToken == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L196" href="#L196">196</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidValueException.html">InvalidValueException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.getsubscriptionresult.InvalidChunkToken"</span>, body.getChunkToken()));
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 				<strong class="jxr_keyword">if</strong> (!chunkToken.getSubscriptionKey().equals(body.getSubscriptionKey()))
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidValueException.html">InvalidValueException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.getsubscriptionresult.NonMatchingChunkToken"</span>, body.getChunkToken()));
<a class="jxr_linenumber" name="L199" href="#L199">199</a> 				<strong class="jxr_keyword">if</strong> (chunkToken.getStartPoint() != <strong class="jxr_keyword">null</strong> &amp;&amp; chunkToken.getStartPoint().getTime() != startPointDate.getTime())
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidValueException.html">InvalidValueException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.getsubscriptionresult.NonMatchingChunkToken"</span>, body.getChunkToken()));
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 				<strong class="jxr_keyword">if</strong> (chunkToken.getEndPoint() != <strong class="jxr_keyword">null</strong> &amp;&amp; chunkToken.getEndPoint().getTime() != endPointDate.getTime())
<a class="jxr_linenumber" name="L202" href="#L202">202</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidValueException.html">InvalidValueException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.getsubscriptionresult.NonMatchingChunkToken"</span>, body.getChunkToken()));
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 				<strong class="jxr_keyword">if</strong> (chunkToken.getExpiresAfter().before(<strong class="jxr_keyword">new</strong> Date()))
<a class="jxr_linenumber" name="L204" href="#L204">204</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/InvalidValueException.html">InvalidValueException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.getsubscriptionresult.ExpiredChunkToken"</span>, body.getChunkToken()));
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 				
<a class="jxr_linenumber" name="L206" href="#L206">206</a> 				chunkData = chunkToken.getData();
<a class="jxr_linenumber" name="L207" href="#L207">207</a> 				<em class="jxr_comment">// We've got the data from the chunk token, now it is no longer needed (once it's called, it's used up)</em>
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 				em.remove(chunkToken);
<a class="jxr_linenumber" name="L209" href="#L209">209</a> 			}
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 	
<a class="jxr_linenumber" name="L211" href="#L211">211</a> 			
<a class="jxr_linenumber" name="L212" href="#L212">212</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindBinding() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 				<em class="jxr_comment">//Get the current matching keys</em>
<a class="jxr_linenumber" name="L214" href="#L214">214</a> 				List&lt;?&gt; currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 				<em class="jxr_comment">// See if there's any missing keys by comparing against the previous matches.  If so, they missing keys are added to the KeyBag and</em>
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 				<em class="jxr_comment">// then added to the result</em>
<a class="jxr_linenumber" name="L217" href="#L217">217</a> 				List&lt;String&gt; missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 				<strong class="jxr_keyword">if</strong> (missingKeys != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeys.size() &gt; 0) {
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 					KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 					missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L221" href="#L221">221</a> 					<strong class="jxr_keyword">for</strong> (String key : missingKeys)
<a class="jxr_linenumber" name="L222" href="#L222">222</a> 						missingKeyBag.getBindingKey().add(key);
<a class="jxr_linenumber" name="L223" href="#L223">223</a> 					
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L225" href="#L225">225</a> 				}
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 				
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 				<em class="jxr_comment">// Re-setting the subscription matches to the new matching key collection</em>
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 				<em class="jxr_comment">//modelSubscription.getSubscriptionMatches().clear();</em>
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 				<em class="jxr_comment">//for (Object key : currentMatchingKeys) {</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a> 				<em class="jxr_comment">//	SubscriptionMatch subMatch = new SubscriptionMatch(modelSubscription, (String)key);</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a> 				<em class="jxr_comment">//	modelSubscription.getSubscriptionMatches().add(subMatch);</em>
<a class="jxr_linenumber" name="L232" href="#L232">232</a> 				<em class="jxr_comment">//}</em>
<a class="jxr_linenumber" name="L233" href="#L233">233</a> 				
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 				<em class="jxr_comment">// Now, finding the necessary entities, within the coverage period limits</em>
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 					KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L237" href="#L237">237</a> 					<strong class="jxr_keyword">for</strong> (String key : (List&lt;String&gt;)currentMatchingKeys)
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 						resultsKeyBag.getBindingKey().add(key);
<a class="jxr_linenumber" name="L239" href="#L239">239</a> 					
<a class="jxr_linenumber" name="L240" href="#L240">240</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L241" href="#L241">241</a> 				}
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 				<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L243" href="#L243">243</a> 					FindBinding fb = subscriptionFilter.getFindBinding();
<a class="jxr_linenumber" name="L244" href="#L244">244</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="L245" href="#L245">245</a> 					findQualifiers.mapApiFindQualifiers(fb.getFindQualifiers());
<a class="jxr_linenumber" name="L246" href="#L246">246</a> 					
<a class="jxr_linenumber" name="L247" href="#L247">247</a> 					<em class="jxr_comment">// To do subscription "chunking", the listHead and maxRows are nulled which will set them to system default.  User settings for</em>
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 					<em class="jxr_comment">// these values don't make sense with the "chunking" feature.</em>
<a class="jxr_linenumber" name="L249" href="#L249">249</a> 					fb.setListHead(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L250" href="#L250">250</a> 					fb.setMaxRows(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 					<em class="jxr_comment">// Setting the start index to the chunkData</em>
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 					Holder&lt;Integer&gt; subscriptionStartIndex = <strong class="jxr_keyword">new</strong> Holder&lt;Integer&gt;(chunkData);
<a class="jxr_linenumber" name="L253" href="#L253">253</a> 					
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 					BindingDetail bindingDetail = InquiryHelper.getBindingDetailFromKeys(fb, findQualifiers, em, currentMatchingKeys,              
<a class="jxr_linenumber" name="L255" href="#L255">255</a> 						startPointDate, endPointDate, subscriptionStartIndex, modelSubscription.getMaxEntities());
<a class="jxr_linenumber" name="L256" href="#L256">256</a> 							
<a class="jxr_linenumber" name="L257" href="#L257">257</a> 					<em class="jxr_comment">// Upon exiting above function, if more results are to be had, the subscriptionStartIndex will contain the latest value (or null</em>
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 					<em class="jxr_comment">// if no more results)</em>
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 					chunkData = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L260" href="#L260">260</a> 					
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 					result.setBindingDetail(bindingDetail);
<a class="jxr_linenumber" name="L262" href="#L262">262</a> 				}
<a class="jxr_linenumber" name="L263" href="#L263">263</a> 			}
<a class="jxr_linenumber" name="L264" href="#L264">264</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindBusiness() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L265" href="#L265">265</a> 				<em class="jxr_comment">//Get the current matching keys</em>
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 				List&lt;?&gt; currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
<a class="jxr_linenumber" name="L267" href="#L267">267</a> 	
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 				List&lt;String&gt; missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
<a class="jxr_linenumber" name="L269" href="#L269">269</a> 				<strong class="jxr_keyword">if</strong> (missingKeys != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeys.size() &gt; 0) {
<a class="jxr_linenumber" name="L270" href="#L270">270</a> 					KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 					missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 					<strong class="jxr_keyword">for</strong> (String key : missingKeys)
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 						missingKeyBag.getBusinessKey().add(key);
<a class="jxr_linenumber" name="L274" href="#L274">274</a> 	
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 				}
<a class="jxr_linenumber" name="L277" href="#L277">277</a> 				
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 				<em class="jxr_comment">// Re-setting the subscription matches to the new matching key collection</em>
<a class="jxr_linenumber" name="L279" href="#L279">279</a> 				<em class="jxr_comment">//modelSubscription.getSubscriptionMatches().clear();</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 				<em class="jxr_comment">//for (Object key : currentMatchingKeys) {</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a> 				<em class="jxr_comment">//	SubscriptionMatch subMatch = new SubscriptionMatch(modelSubscription, (String)key);</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a> 				<em class="jxr_comment">//	modelSubscription.getSubscriptionMatches().add(subMatch);</em>
<a class="jxr_linenumber" name="L283" href="#L283">283</a> 				<em class="jxr_comment">//}</em>
<a class="jxr_linenumber" name="L284" href="#L284">284</a> 				
<a class="jxr_linenumber" name="L285" href="#L285">285</a> 				<em class="jxr_comment">// Now, finding the necessary entities, within the coverage period limits</em>
<a class="jxr_linenumber" name="L286" href="#L286">286</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L287" href="#L287">287</a> 					KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 					<strong class="jxr_keyword">for</strong> (String key : (List&lt;String&gt;)currentMatchingKeys)
<a class="jxr_linenumber" name="L289" href="#L289">289</a> 						resultsKeyBag.getBusinessKey().add(key);
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 					
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 				}
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 				<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L294" href="#L294">294</a> 					FindBusiness fb = subscriptionFilter.getFindBusiness();
<a class="jxr_linenumber" name="L295" href="#L295">295</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="L296" href="#L296">296</a> 					findQualifiers.mapApiFindQualifiers(fb.getFindQualifiers());
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 					
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 					<em class="jxr_comment">// To do subscription "chunking", the listHead and maxRows are nulled which will set them to system default.  User settings for</em>
<a class="jxr_linenumber" name="L299" href="#L299">299</a> 					<em class="jxr_comment">// these values don't make sense with the "chunking" feature.</em>
<a class="jxr_linenumber" name="L300" href="#L300">300</a> 					fb.setListHead(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 					fb.setMaxRows(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L302" href="#L302">302</a> 					<em class="jxr_comment">// Setting the start index to the chunkData</em>
<a class="jxr_linenumber" name="L303" href="#L303">303</a> 					Holder&lt;Integer&gt; subscriptionStartIndex = <strong class="jxr_keyword">new</strong> Holder&lt;Integer&gt;(chunkData);
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 					
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 					BusinessList businessList = InquiryHelper.getBusinessListFromKeys(fb, findQualifiers, em, currentMatchingKeys,
<a class="jxr_linenumber" name="L306" href="#L306">306</a> 																					  startPointDate, endPointDate, subscriptionStartIndex, modelSubscription.getMaxEntities());
<a class="jxr_linenumber" name="L307" href="#L307">307</a> 					
<a class="jxr_linenumber" name="L308" href="#L308">308</a> 					<em class="jxr_comment">// Upon exiting above function, if more results are to be had, the subscriptionStartIndex will contain the latest value (or null</em>
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 					<em class="jxr_comment">// if no more results)</em>
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 					chunkData = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L311" href="#L311">311</a> 					
<a class="jxr_linenumber" name="L312" href="#L312">312</a> 					result.setBusinessList(businessList);
<a class="jxr_linenumber" name="L313" href="#L313">313</a> 				}
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 			}
<a class="jxr_linenumber" name="L315" href="#L315">315</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindService() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L316" href="#L316">316</a> 				<em class="jxr_comment">//Get the current matching keys</em>
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 				List&lt;?&gt; currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
<a class="jxr_linenumber" name="L318" href="#L318">318</a> 				<strong class="jxr_keyword">if</strong> (logger.isDebugEnabled()) logger.debug(<span class="jxr_string">"current matching keys="</span> + currentMatchingKeys);
<a class="jxr_linenumber" name="L319" href="#L319">319</a> 				List&lt;String&gt; missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
<a class="jxr_linenumber" name="L320" href="#L320">320</a> 				<strong class="jxr_keyword">if</strong> (missingKeys != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeys.size() &gt; 0) {
<a class="jxr_linenumber" name="L321" href="#L321">321</a> 					KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 					missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 					<strong class="jxr_keyword">for</strong> (String key : missingKeys)
<a class="jxr_linenumber" name="L324" href="#L324">324</a> 						missingKeyBag.getServiceKey().add(key);
<a class="jxr_linenumber" name="L325" href="#L325">325</a> 	
<a class="jxr_linenumber" name="L326" href="#L326">326</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 				}
<a class="jxr_linenumber" name="L328" href="#L328">328</a> 				
<a class="jxr_linenumber" name="L329" href="#L329">329</a> 				<em class="jxr_comment">// Re-setting the subscription matches to the new matching key collection</em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 				<em class="jxr_comment">//modelSubscription.getSubscriptionMatches().clear();</em>
<a class="jxr_linenumber" name="L331" href="#L331">331</a> 				<em class="jxr_comment">//for (Object key : currentMatchingKeys) {</em>
<a class="jxr_linenumber" name="L332" href="#L332">332</a> 				<em class="jxr_comment">//	SubscriptionMatch subMatch = new SubscriptionMatch(modelSubscription, (String)key);</em>
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 				<em class="jxr_comment">//	modelSubscription.getSubscriptionMatches().add(subMatch);</em>
<a class="jxr_linenumber" name="L334" href="#L334">334</a> 				<em class="jxr_comment">//}</em>
<a class="jxr_linenumber" name="L335" href="#L335">335</a> 				
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 				<em class="jxr_comment">// Now, finding the necessary entities, within the coverage period limits</em>
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 					KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L339" href="#L339">339</a> 					<strong class="jxr_keyword">for</strong> (String key : (List&lt;String&gt;)currentMatchingKeys)
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 						resultsKeyBag.getServiceKey().add(key);
<a class="jxr_linenumber" name="L341" href="#L341">341</a> 					
<a class="jxr_linenumber" name="L342" href="#L342">342</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L343" href="#L343">343</a> 				}
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 				<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L345" href="#L345">345</a> 					FindService fs = subscriptionFilter.getFindService();
<a class="jxr_linenumber" name="L346" href="#L346">346</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="L347" href="#L347">347</a> 					findQualifiers.mapApiFindQualifiers(fs.getFindQualifiers());
<a class="jxr_linenumber" name="L348" href="#L348">348</a> 					
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 					<em class="jxr_comment">// To do subscription "chunking", the listHead and maxRows are nulled which will set them to system default.  User settings for</em>
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 					<em class="jxr_comment">// these values don't make sense with the "chunking" feature.</em>
<a class="jxr_linenumber" name="L351" href="#L351">351</a> 					fs.setListHead(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L352" href="#L352">352</a> 					fs.setMaxRows(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L353" href="#L353">353</a> 					<em class="jxr_comment">// Setting the start index to the chunkData</em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a> 					Holder&lt;Integer&gt; subscriptionStartIndex = <strong class="jxr_keyword">new</strong> Holder&lt;Integer&gt;(chunkData);
<a class="jxr_linenumber" name="L355" href="#L355">355</a> 	
<a class="jxr_linenumber" name="L356" href="#L356">356</a> 					ServiceList serviceList = InquiryHelper.getServiceListFromKeys(fs, findQualifiers, em, currentMatchingKeys,
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 																				   startPointDate, endPointDate, subscriptionStartIndex, modelSubscription.getMaxEntities());
<a class="jxr_linenumber" name="L358" href="#L358">358</a> 					<strong class="jxr_keyword">if</strong> (serviceList.getServiceInfos()==<strong class="jxr_keyword">null</strong> || serviceList.getServiceInfos().getServiceInfo().size()==0) {
<a class="jxr_linenumber" name="L359" href="#L359">359</a> 						serviceList=<strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L360" href="#L360">360</a> 					}
<a class="jxr_linenumber" name="L361" href="#L361">361</a> 					<em class="jxr_comment">// Upon exiting above function, if more results are to be had, the subscriptionStartIndex will contain the latest value (or null</em>
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 					<em class="jxr_comment">// if no more results)</em>
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 					chunkData = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L364" href="#L364">364</a> 					
<a class="jxr_linenumber" name="L365" href="#L365">365</a> 					result.setServiceList(serviceList);
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 				}
<a class="jxr_linenumber" name="L367" href="#L367">367</a> 			}
<a class="jxr_linenumber" name="L368" href="#L368">368</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindTModel() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L369" href="#L369">369</a> 				<em class="jxr_comment">//Get the current matching keys</em>
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 				List&lt;?&gt; currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
<a class="jxr_linenumber" name="L371" href="#L371">371</a> 	
<a class="jxr_linenumber" name="L372" href="#L372">372</a> 				List&lt;String&gt; missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
<a class="jxr_linenumber" name="L373" href="#L373">373</a> 				<strong class="jxr_keyword">if</strong> (missingKeys != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeys.size() &gt; 0) {
<a class="jxr_linenumber" name="L374" href="#L374">374</a> 					KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L375" href="#L375">375</a> 					missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 					<strong class="jxr_keyword">for</strong> (String key : missingKeys)
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 						missingKeyBag.getTModelKey().add(key);
<a class="jxr_linenumber" name="L378" href="#L378">378</a> 	
<a class="jxr_linenumber" name="L379" href="#L379">379</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L380" href="#L380">380</a> 				}
<a class="jxr_linenumber" name="L381" href="#L381">381</a> 				
<a class="jxr_linenumber" name="L382" href="#L382">382</a> 				<em class="jxr_comment">// Re-setting the subscription matches to the new matching key collection</em>
<a class="jxr_linenumber" name="L383" href="#L383">383</a> 				<em class="jxr_comment">//modelSubscription.getSubscriptionMatches().clear();</em>
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 				<em class="jxr_comment">//for (Object key : currentMatchingKeys) {</em>
<a class="jxr_linenumber" name="L385" href="#L385">385</a> 				<em class="jxr_comment">//	SubscriptionMatch subMatch = new SubscriptionMatch(modelSubscription, (String)key);</em>
<a class="jxr_linenumber" name="L386" href="#L386">386</a> 				<em class="jxr_comment">//	modelSubscription.getSubscriptionMatches().add(subMatch);</em>
<a class="jxr_linenumber" name="L387" href="#L387">387</a> 				<em class="jxr_comment">//}</em>
<a class="jxr_linenumber" name="L388" href="#L388">388</a> 				
<a class="jxr_linenumber" name="L389" href="#L389">389</a> 				<em class="jxr_comment">// Now, finding the necessary entities, within the coverage period limits</em>
<a class="jxr_linenumber" name="L390" href="#L390">390</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 					KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L392" href="#L392">392</a> 					<strong class="jxr_keyword">for</strong> (String key : (List&lt;String&gt;)currentMatchingKeys)
<a class="jxr_linenumber" name="L393" href="#L393">393</a> 						resultsKeyBag.getTModelKey().add(key);
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 					
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L396" href="#L396">396</a> 				}
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 				<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L398" href="#L398">398</a> 					FindTModel ft = subscriptionFilter.getFindTModel();
<a class="jxr_linenumber" name="L399" href="#L399">399</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="L400" href="#L400">400</a> 					findQualifiers.mapApiFindQualifiers(ft.getFindQualifiers());
<a class="jxr_linenumber" name="L401" href="#L401">401</a> 	
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 					<em class="jxr_comment">// To do subscription "chunking", the listHead and maxRows are nulled which will set them to system default.  User settings for</em>
<a class="jxr_linenumber" name="L403" href="#L403">403</a> 					<em class="jxr_comment">// these values don't make sense with the "chunking" feature.</em>
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 					ft.setListHead(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 					ft.setMaxRows(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L406" href="#L406">406</a> 					<em class="jxr_comment">// Setting the start index to the chunkData</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a> 					Holder&lt;Integer&gt; subscriptionStartIndex = <strong class="jxr_keyword">new</strong> Holder&lt;Integer&gt;(chunkData);
<a class="jxr_linenumber" name="L408" href="#L408">408</a> 					
<a class="jxr_linenumber" name="L409" href="#L409">409</a> 					<em class="jxr_comment">// If more results are to be had, chunkData will come out with a value and a new token will be generated below.  Otherwise, it will</em>
<a class="jxr_linenumber" name="L410" href="#L410">410</a> 					<em class="jxr_comment">// be null and no token will be generated.</em>
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 					TModelList tmodelList = InquiryHelper.getTModelListFromKeys(ft, findQualifiers, em, currentMatchingKeys, 
<a class="jxr_linenumber" name="L412" href="#L412">412</a> 																				startPointDate, endPointDate, subscriptionStartIndex, modelSubscription.getMaxEntities());
<a class="jxr_linenumber" name="L413" href="#L413">413</a> 	
<a class="jxr_linenumber" name="L414" href="#L414">414</a> 					<em class="jxr_comment">// Upon exiting above function, if more results are to be had, the subscriptionStartIndex will contain the latest value (or null</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a> 					<em class="jxr_comment">// if no more results)</em>
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 					chunkData = subscriptionStartIndex.value;
<a class="jxr_linenumber" name="L417" href="#L417">417</a> 					
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 					result.setTModelList(tmodelList);
<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> 			}
<a class="jxr_linenumber" name="L422" href="#L422">422</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindRelatedBusinesses() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L423" href="#L423">423</a> 				FindRelatedBusinesses findRelatedBusiness = subscriptionFilter.getFindRelatedBusinesses();
<a class="jxr_linenumber" name="L424" href="#L424">424</a> 				RelatedBusinessesList  relatedBusinessList = InquiryHelper.getRelatedBusinessesList(findRelatedBusiness, em, startPointDate, endPointDate);
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 				result.setRelatedBusinessesList(relatedBusinessList);
<a class="jxr_linenumber" name="L426" href="#L426">426</a> 			}
<a class="jxr_linenumber" name="L427" href="#L427">427</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetBindingDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 				GetBindingDetail getDetail = subscriptionFilter.getGetBindingDetail();
<a class="jxr_linenumber" name="L429" href="#L429">429</a> 				
<a class="jxr_linenumber" name="L430" href="#L430">430</a> 				<em class="jxr_comment">// Running through the key list here to determine the deleted keys and store the existing entities.</em>
<a class="jxr_linenumber" name="L431" href="#L431">431</a> 				KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 				missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L433" href="#L433">433</a> 				List&lt;org.apache.juddi.model.BindingTemplate&gt; existingList = <strong class="jxr_keyword">new</strong> ArrayList&lt;org.apache.juddi.model.BindingTemplate&gt;(0);
<a class="jxr_linenumber" name="L434" href="#L434">434</a> 				<strong class="jxr_keyword">for</strong> (String key : getDetail.getBindingKey()) {
<a class="jxr_linenumber" name="L435" href="#L435">435</a> 					org.apache.juddi.model.BindingTemplate modelBindingTemplate = em.find(org.apache.juddi.model.BindingTemplate.<strong class="jxr_keyword">class</strong>, key);
<a class="jxr_linenumber" name="L436" href="#L436">436</a> 					<strong class="jxr_keyword">if</strong> (modelBindingTemplate != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L437" href="#L437">437</a> 						existingList.add(modelBindingTemplate);
<a class="jxr_linenumber" name="L438" href="#L438">438</a> 					<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 						missingKeyBag.getBindingKey().add(key);
<a class="jxr_linenumber" name="L440" href="#L440">440</a> 				}
<a class="jxr_linenumber" name="L441" href="#L441">441</a> 				<em class="jxr_comment">// Store deleted keys in the results</em>
<a class="jxr_linenumber" name="L442" href="#L442">442</a> 				<strong class="jxr_keyword">if</strong> (missingKeyBag.getBindingKey() != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeyBag.getBindingKey().size() &gt; 0)
<a class="jxr_linenumber" name="L443" href="#L443">443</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L444" href="#L444">444</a> 				
<a class="jxr_linenumber" name="L445" href="#L445">445</a> 				KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 				BindingDetail bindingDetail = <strong class="jxr_keyword">new</strong> BindingDetail();
<a class="jxr_linenumber" name="L447" href="#L447">447</a> 	
<a class="jxr_linenumber" name="L448" href="#L448">448</a> 				<em class="jxr_comment">// Set the currentIndex to 0 or the value of the chunkData</em>
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 				<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 				<strong class="jxr_keyword">if</strong> (chunkData != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L451" href="#L451">451</a> 					currentIndex = chunkData;
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 	
<a class="jxr_linenumber" name="L453" href="#L453">453</a> 				<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L454" href="#L454">454</a> 				<strong class="jxr_keyword">while</strong>(currentIndex &lt; existingList.size()) {
<a class="jxr_linenumber" name="L455" href="#L455">455</a> 	
<a class="jxr_linenumber" name="L456" href="#L456">456</a> 					org.apache.juddi.model.BindingTemplate modelBindingTemplate = existingList.get(currentIndex);
<a class="jxr_linenumber" name="L457" href="#L457">457</a> 						
<a class="jxr_linenumber" name="L458" href="#L458">458</a> 					<strong class="jxr_keyword">if</strong> (startPointDate.after(modelBindingTemplate.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 						currentIndex++;
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L461" href="#L461">461</a> 					}
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 					
<a class="jxr_linenumber" name="L463" href="#L463">463</a> 					<strong class="jxr_keyword">if</strong> (endPointDate.before(modelBindingTemplate.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L464" href="#L464">464</a> 						currentIndex++;
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L466" href="#L466">466</a> 					}
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 					
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L469" href="#L469">469</a> 						resultsKeyBag.getBindingKey().add(modelBindingTemplate.getEntityKey());
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 					}
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 					<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L472" href="#L472">472</a> 						org.uddi.api_v3.BindingTemplate apiBindingTemplate = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.BindingTemplate();
<a class="jxr_linenumber" name="L473" href="#L473">473</a> 						MappingModelToApi.mapBindingTemplate(modelBindingTemplate, apiBindingTemplate);
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 						bindingDetail.getBindingTemplate().add(apiBindingTemplate);
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 						
<a class="jxr_linenumber" name="L476" href="#L476">476</a> 						returnedRowCount++;
<a class="jxr_linenumber" name="L477" href="#L477">477</a> 					}
<a class="jxr_linenumber" name="L478" href="#L478">478</a> 	
<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.</em>
<a class="jxr_linenumber" name="L480" href="#L480">480</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.getMaxEntities() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 						<strong class="jxr_keyword">if</strong> (returnedRowCount == modelSubscription.getMaxEntities())
<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 chunk data to the next index to start with.</em>
<a class="jxr_linenumber" name="L489" href="#L489">489</a> 				<em class="jxr_comment">// A non-null value of chunk data will cause a chunk token to be generated. </em>
<a class="jxr_linenumber" name="L490" href="#L490">490</a> 				<strong class="jxr_keyword">if</strong> (currentIndex &lt; (existingList.size() - 1))
<a class="jxr_linenumber" name="L491" href="#L491">491</a> 					chunkData = currentIndex + 1;
<a class="jxr_linenumber" name="L492" href="#L492">492</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 					chunkData = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L494" href="#L494">494</a> 				
<a class="jxr_linenumber" name="L495" href="#L495">495</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief())
<a class="jxr_linenumber" name="L496" href="#L496">496</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L497" href="#L497">497</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L498" href="#L498">498</a> 					result.setBindingDetail(bindingDetail);
<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> 			}
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetBusinessDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L503" href="#L503">503</a> 				GetBusinessDetail getDetail = subscriptionFilter.getGetBusinessDetail();
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 	
<a class="jxr_linenumber" name="L505" href="#L505">505</a> 				<em class="jxr_comment">// Running through the key list here to determine the deleted keys and store the existing entities.</em>
<a class="jxr_linenumber" name="L506" href="#L506">506</a> 				KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L507" href="#L507">507</a> 				missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L508" href="#L508">508</a> 				List&lt;org.apache.juddi.model.BusinessEntity&gt; existingList = <strong class="jxr_keyword">new</strong> ArrayList&lt;org.apache.juddi.model.BusinessEntity&gt;(0);
<a class="jxr_linenumber" name="L509" href="#L509">509</a> 				<strong class="jxr_keyword">for</strong> (String key : getDetail.getBusinessKey()) {
<a class="jxr_linenumber" name="L510" href="#L510">510</a> 					org.apache.juddi.model.BusinessEntity modelBusinessEntity = em.find(org.apache.juddi.model.BusinessEntity.<strong class="jxr_keyword">class</strong>, key);
<a class="jxr_linenumber" name="L511" href="#L511">511</a> 					<strong class="jxr_keyword">if</strong> (modelBusinessEntity != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L512" href="#L512">512</a> 						existingList.add(modelBusinessEntity);
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 					<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L514" href="#L514">514</a> 						missingKeyBag.getBusinessKey().add(key);
<a class="jxr_linenumber" name="L515" href="#L515">515</a> 				}
<a class="jxr_linenumber" name="L516" href="#L516">516</a> 				<em class="jxr_comment">// Store deleted keys in the results</em>
<a class="jxr_linenumber" name="L517" href="#L517">517</a> 				<strong class="jxr_keyword">if</strong> (missingKeyBag.getBusinessKey() != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeyBag.getBusinessKey().size() &gt; 0)
<a class="jxr_linenumber" name="L518" href="#L518">518</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L519" href="#L519">519</a> 				
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 				KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L521" href="#L521">521</a> 				BusinessDetail businessDetail = <strong class="jxr_keyword">new</strong> BusinessDetail();
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 	
<a class="jxr_linenumber" name="L523" href="#L523">523</a> 				<em class="jxr_comment">// Set the currentIndex to 0 or the value of the chunkData</em>
<a class="jxr_linenumber" name="L524" href="#L524">524</a> 				<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L525" href="#L525">525</a> 				<strong class="jxr_keyword">if</strong> (chunkData != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L526" href="#L526">526</a> 					currentIndex = chunkData;
<a class="jxr_linenumber" name="L527" href="#L527">527</a> 				
<a class="jxr_linenumber" name="L528" href="#L528">528</a> 				<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L529" href="#L529">529</a> 				<strong class="jxr_keyword">while</strong>(currentIndex &lt; existingList.size()) {
<a class="jxr_linenumber" name="L530" href="#L530">530</a> 	
<a class="jxr_linenumber" name="L531" href="#L531">531</a> 					org.apache.juddi.model.BusinessEntity modelBusinessEntity = existingList.get(currentIndex);
<a class="jxr_linenumber" name="L532" href="#L532">532</a> 	
<a class="jxr_linenumber" name="L533" href="#L533">533</a> 					<strong class="jxr_keyword">if</strong> (startPointDate.after(modelBusinessEntity.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L534" href="#L534">534</a> 						currentIndex++;
<a class="jxr_linenumber" name="L535" href="#L535">535</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 					}
<a class="jxr_linenumber" name="L537" href="#L537">537</a> 					
<a class="jxr_linenumber" name="L538" href="#L538">538</a> 					<strong class="jxr_keyword">if</strong> (endPointDate.before(modelBusinessEntity.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L539" href="#L539">539</a> 						currentIndex++;
<a class="jxr_linenumber" name="L540" href="#L540">540</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L541" href="#L541">541</a> 					}
<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> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 						resultsKeyBag.getBusinessKey().add(modelBusinessEntity.getEntityKey());
<a class="jxr_linenumber" name="L545" href="#L545">545</a> 					}
<a class="jxr_linenumber" name="L546" href="#L546">546</a> 					<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L547" href="#L547">547</a> 						org.uddi.api_v3.BusinessEntity apiBusinessEntity = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.BusinessEntity();
<a class="jxr_linenumber" name="L548" href="#L548">548</a> 						MappingModelToApi.mapBusinessEntity(modelBusinessEntity, apiBusinessEntity);
<a class="jxr_linenumber" name="L549" href="#L549">549</a> 						businessDetail.getBusinessEntity().add(apiBusinessEntity);
<a class="jxr_linenumber" name="L550" href="#L550">550</a> 						
<a class="jxr_linenumber" name="L551" href="#L551">551</a> 						returnedRowCount++;
<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> 					<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop.</em>
<a class="jxr_linenumber" name="L555" href="#L555">555</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.getMaxEntities() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 						<strong class="jxr_keyword">if</strong> (returnedRowCount == modelSubscription.getMaxEntities())
<a class="jxr_linenumber" name="L557" href="#L557">557</a> 							<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 					}
<a class="jxr_linenumber" name="L559" href="#L559">559</a> 	
<a class="jxr_linenumber" name="L560" href="#L560">560</a> 					currentIndex++;
<a class="jxr_linenumber" name="L561" href="#L561">561</a> 				}
<a class="jxr_linenumber" name="L562" href="#L562">562</a> 				
<a class="jxr_linenumber" name="L563" href="#L563">563</a> 				<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the chunk data to the next index to start with.</em>
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 				<em class="jxr_comment">// A non-null value of chunk data will cause a chunk token to be generated. </em>
<a class="jxr_linenumber" name="L565" href="#L565">565</a> 				<strong class="jxr_keyword">if</strong> (currentIndex &lt; (existingList.size() - 1))
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 					chunkData = currentIndex + 1;
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L568" href="#L568">568</a> 					chunkData = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L569" href="#L569">569</a> 				
<a class="jxr_linenumber" name="L570" href="#L570">570</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief())
<a class="jxr_linenumber" name="L571" href="#L571">571</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L572" href="#L572">572</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L573" href="#L573">573</a> 					result.setBusinessDetail(businessDetail);
<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> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetServiceDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L577" href="#L577">577</a> 				GetServiceDetail getDetail = subscriptionFilter.getGetServiceDetail();
<a class="jxr_linenumber" name="L578" href="#L578">578</a> 	
<a class="jxr_linenumber" name="L579" href="#L579">579</a> 				<em class="jxr_comment">// Running through the key list here to determine the deleted keys and store the existing entities.</em>
<a class="jxr_linenumber" name="L580" href="#L580">580</a> 				KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L581" href="#L581">581</a> 				missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L582" href="#L582">582</a> 				List&lt;org.apache.juddi.model.BusinessService&gt; existingList = <strong class="jxr_keyword">new</strong> ArrayList&lt;org.apache.juddi.model.BusinessService&gt;(0);
<a class="jxr_linenumber" name="L583" href="#L583">583</a> 				<strong class="jxr_keyword">for</strong> (String key : getDetail.getServiceKey()) {
<a class="jxr_linenumber" name="L584" href="#L584">584</a> 					org.apache.juddi.model.BusinessService modelBusinessService = em.find(org.apache.juddi.model.BusinessService.<strong class="jxr_keyword">class</strong>, key);
<a class="jxr_linenumber" name="L585" href="#L585">585</a> 					<strong class="jxr_keyword">if</strong> (modelBusinessService != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L586" href="#L586">586</a> 						existingList.add(modelBusinessService);
<a class="jxr_linenumber" name="L587" href="#L587">587</a> 					<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L588" href="#L588">588</a> 						missingKeyBag.getBusinessKey().add(key);
<a class="jxr_linenumber" name="L589" href="#L589">589</a> 				}
<a class="jxr_linenumber" name="L590" href="#L590">590</a> 				<em class="jxr_comment">// Store deleted keys in the results</em>
<a class="jxr_linenumber" name="L591" href="#L591">591</a> 				<strong class="jxr_keyword">if</strong> (missingKeyBag.getServiceKey() != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeyBag.getServiceKey().size() &gt; 0)
<a class="jxr_linenumber" name="L592" href="#L592">592</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L593" href="#L593">593</a> 	
<a class="jxr_linenumber" name="L594" href="#L594">594</a> 				KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L595" href="#L595">595</a> 				ServiceDetail serviceDetail = <strong class="jxr_keyword">new</strong> ServiceDetail();
<a class="jxr_linenumber" name="L596" href="#L596">596</a> 				
<a class="jxr_linenumber" name="L597" href="#L597">597</a> 				<em class="jxr_comment">// Set the currentIndex to 0 or the value of the chunkData</em>
<a class="jxr_linenumber" name="L598" href="#L598">598</a> 				<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L599" href="#L599">599</a> 				<strong class="jxr_keyword">if</strong> (chunkData != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L600" href="#L600">600</a> 					currentIndex = chunkData;
<a class="jxr_linenumber" name="L601" href="#L601">601</a> 				
<a class="jxr_linenumber" name="L602" href="#L602">602</a> 				<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L603" href="#L603">603</a> 				<strong class="jxr_keyword">while</strong>(currentIndex &lt; existingList.size()) {
<a class="jxr_linenumber" name="L604" href="#L604">604</a> 					
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 					org.apache.juddi.model.BusinessService modelBusinessService = existingList.get(currentIndex);
<a class="jxr_linenumber" name="L606" href="#L606">606</a> 						
<a class="jxr_linenumber" name="L607" href="#L607">607</a> 					<strong class="jxr_keyword">if</strong> (startPointDate.after(modelBusinessService.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L608" href="#L608">608</a> 						currentIndex++;
<a class="jxr_linenumber" name="L609" href="#L609">609</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 					}
<a class="jxr_linenumber" name="L611" href="#L611">611</a> 					
<a class="jxr_linenumber" name="L612" href="#L612">612</a> 					<strong class="jxr_keyword">if</strong> (endPointDate.before(modelBusinessService.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L613" href="#L613">613</a> 						currentIndex++;
<a class="jxr_linenumber" name="L614" href="#L614">614</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L615" href="#L615">615</a> 					}
<a class="jxr_linenumber" name="L616" href="#L616">616</a> 					
<a class="jxr_linenumber" name="L617" href="#L617">617</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L618" href="#L618">618</a> 						resultsKeyBag.getServiceKey().add(modelBusinessService.getEntityKey());
<a class="jxr_linenumber" name="L619" href="#L619">619</a> 					}
<a class="jxr_linenumber" name="L620" href="#L620">620</a> 					<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 						org.uddi.api_v3.BusinessService apiBusinessService = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.BusinessService();
<a class="jxr_linenumber" name="L622" href="#L622">622</a> 						MappingModelToApi.mapBusinessService(modelBusinessService, apiBusinessService);
<a class="jxr_linenumber" name="L623" href="#L623">623</a> 						serviceDetail.getBusinessService().add(apiBusinessService);
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 						
<a class="jxr_linenumber" name="L625" href="#L625">625</a> 						returnedRowCount++;
<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> 					<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop.</em>
<a class="jxr_linenumber" name="L629" href="#L629">629</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.getMaxEntities() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L630" href="#L630">630</a> 						<strong class="jxr_keyword">if</strong> (returnedRowCount == modelSubscription.getMaxEntities())
<a class="jxr_linenumber" name="L631" href="#L631">631</a> 							<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L632" href="#L632">632</a> 					}
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 	
<a class="jxr_linenumber" name="L634" href="#L634">634</a> 					currentIndex++;
<a class="jxr_linenumber" name="L635" href="#L635">635</a> 				}
<a class="jxr_linenumber" name="L636" href="#L636">636</a> 				
<a class="jxr_linenumber" name="L637" href="#L637">637</a> 				<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the chunk data to the next index to start with.</em>
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 				<em class="jxr_comment">// A non-null value of chunk data will cause a chunk token to be generated. </em>
<a class="jxr_linenumber" name="L639" href="#L639">639</a> 				<strong class="jxr_keyword">if</strong> (currentIndex &lt; (existingList.size() - 1))
<a class="jxr_linenumber" name="L640" href="#L640">640</a> 					chunkData = currentIndex + 1;
<a class="jxr_linenumber" name="L641" href="#L641">641</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L642" href="#L642">642</a> 					chunkData = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L643" href="#L643">643</a> 				
<a class="jxr_linenumber" name="L644" href="#L644">644</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief())
<a class="jxr_linenumber" name="L645" href="#L645">645</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L646" href="#L646">646</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L647" href="#L647">647</a> 					result.setServiceDetail(serviceDetail);
<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> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetTModelDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L651" href="#L651">651</a> 				GetTModelDetail getDetail = subscriptionFilter.getGetTModelDetail();
<a class="jxr_linenumber" name="L652" href="#L652">652</a> 	
<a class="jxr_linenumber" name="L653" href="#L653">653</a> 				<em class="jxr_comment">// Running through the key list here to determine the deleted keys and store the existing entities.</em>
<a class="jxr_linenumber" name="L654" href="#L654">654</a> 				KeyBag missingKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L655" href="#L655">655</a> 				missingKeyBag.setDeleted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L656" href="#L656">656</a> 				List&lt;org.apache.juddi.model.Tmodel&gt; existingList = <strong class="jxr_keyword">new</strong> ArrayList&lt;org.apache.juddi.model.Tmodel&gt;(0);
<a class="jxr_linenumber" name="L657" href="#L657">657</a> 				<strong class="jxr_keyword">for</strong> (String key : getDetail.getTModelKey()) {
<a class="jxr_linenumber" name="L658" href="#L658">658</a> 					org.apache.juddi.model.Tmodel modelTModel = em.find(org.apache.juddi.model.Tmodel.<strong class="jxr_keyword">class</strong>, key);
<a class="jxr_linenumber" name="L659" href="#L659">659</a> 					<strong class="jxr_keyword">if</strong> (modelTModel != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L660" href="#L660">660</a> 						existingList.add(modelTModel);
<a class="jxr_linenumber" name="L661" href="#L661">661</a> 					<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L662" href="#L662">662</a> 						missingKeyBag.getTModelKey().add(key);
<a class="jxr_linenumber" name="L663" href="#L663">663</a> 				}
<a class="jxr_linenumber" name="L664" href="#L664">664</a> 				<em class="jxr_comment">// Store deleted keys in the results</em>
<a class="jxr_linenumber" name="L665" href="#L665">665</a> 				<strong class="jxr_keyword">if</strong> (missingKeyBag.getTModelKey() != <strong class="jxr_keyword">null</strong> &amp;&amp; missingKeyBag.getTModelKey().size() &gt; 0)
<a class="jxr_linenumber" name="L666" href="#L666">666</a> 					result.getKeyBag().add(missingKeyBag);
<a class="jxr_linenumber" name="L667" href="#L667">667</a> 				
<a class="jxr_linenumber" name="L668" href="#L668">668</a> 				KeyBag resultsKeyBag = <strong class="jxr_keyword">new</strong> KeyBag();
<a class="jxr_linenumber" name="L669" href="#L669">669</a> 				TModelDetail tmodelDetail = <strong class="jxr_keyword">new</strong> TModelDetail();
<a class="jxr_linenumber" name="L670" href="#L670">670</a> 	
<a class="jxr_linenumber" name="L671" href="#L671">671</a> 				<em class="jxr_comment">// Set the currentIndex to 0 or the value of the chunkData</em>
<a class="jxr_linenumber" name="L672" href="#L672">672</a> 				<strong class="jxr_keyword">int</strong> currentIndex = 0;
<a class="jxr_linenumber" name="L673" href="#L673">673</a> 				<strong class="jxr_keyword">if</strong> (chunkData != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L674" href="#L674">674</a> 					currentIndex = chunkData;
<a class="jxr_linenumber" name="L675" href="#L675">675</a> 				
<a class="jxr_linenumber" name="L676" href="#L676">676</a> 				<strong class="jxr_keyword">int</strong> returnedRowCount = 0;
<a class="jxr_linenumber" name="L677" href="#L677">677</a> 				<strong class="jxr_keyword">while</strong>(currentIndex &lt; existingList.size()) {
<a class="jxr_linenumber" name="L678" href="#L678">678</a> 	
<a class="jxr_linenumber" name="L679" href="#L679">679</a> 					org.apache.juddi.model.Tmodel modelTModel = existingList.get(currentIndex);
<a class="jxr_linenumber" name="L680" href="#L680">680</a> 						
<a class="jxr_linenumber" name="L681" href="#L681">681</a> 					<strong class="jxr_keyword">if</strong> (startPointDate.after(modelTModel.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L682" href="#L682">682</a> 						currentIndex++;
<a class="jxr_linenumber" name="L683" href="#L683">683</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L684" href="#L684">684</a> 					}
<a class="jxr_linenumber" name="L685" href="#L685">685</a> 					
<a class="jxr_linenumber" name="L686" href="#L686">686</a> 					<strong class="jxr_keyword">if</strong> (endPointDate.before(modelTModel.getModifiedIncludingChildren())) {
<a class="jxr_linenumber" name="L687" href="#L687">687</a> 						currentIndex++;
<a class="jxr_linenumber" name="L688" href="#L688">688</a> 						<strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L689" href="#L689">689</a> 					}
<a class="jxr_linenumber" name="L690" href="#L690">690</a> 					
<a class="jxr_linenumber" name="L691" href="#L691">691</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief()) {
<a class="jxr_linenumber" name="L692" href="#L692">692</a> 						resultsKeyBag.getTModelKey().add(modelTModel.getEntityKey());
<a class="jxr_linenumber" name="L693" href="#L693">693</a> 					}
<a class="jxr_linenumber" name="L694" href="#L694">694</a> 					<strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L695" href="#L695">695</a> 						org.uddi.api_v3.TModel apiTModel = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.TModel();
<a class="jxr_linenumber" name="L696" href="#L696">696</a> 						MappingModelToApi.mapTModel(modelTModel, apiTModel);
<a class="jxr_linenumber" name="L697" href="#L697">697</a> 						tmodelDetail.getTModel().add(apiTModel);
<a class="jxr_linenumber" name="L698" href="#L698">698</a> 						
<a class="jxr_linenumber" name="L699" href="#L699">699</a> 						returnedRowCount++;
<a class="jxr_linenumber" name="L700" href="#L700">700</a> 					}
<a class="jxr_linenumber" name="L701" href="#L701">701</a> 	
<a class="jxr_linenumber" name="L702" href="#L702">702</a> 					<em class="jxr_comment">// If the returned rows equals the max allowed, we can end the loop.</em>
<a class="jxr_linenumber" name="L703" href="#L703">703</a> 					<strong class="jxr_keyword">if</strong> (modelSubscription.getMaxEntities() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L704" href="#L704">704</a> 						<strong class="jxr_keyword">if</strong> (returnedRowCount == modelSubscription.getMaxEntities())
<a class="jxr_linenumber" name="L705" href="#L705">705</a> 							<strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L706" href="#L706">706</a> 					}
<a class="jxr_linenumber" name="L707" href="#L707">707</a> 	
<a class="jxr_linenumber" name="L708" href="#L708">708</a> 					currentIndex++;
<a class="jxr_linenumber" name="L709" href="#L709">709</a> 				}
<a class="jxr_linenumber" name="L710" href="#L710">710</a> 				
<a class="jxr_linenumber" name="L711" href="#L711">711</a> 				<em class="jxr_comment">// If the loop was broken prematurely (max row count hit) we set the chunk data to the next index to start with.</em>
<a class="jxr_linenumber" name="L712" href="#L712">712</a> 				<em class="jxr_comment">// A non-null value of chunk data will cause a chunk token to be generated. </em>
<a class="jxr_linenumber" name="L713" href="#L713">713</a> 				<strong class="jxr_keyword">if</strong> (currentIndex &lt; (existingList.size() - 1))
<a class="jxr_linenumber" name="L714" href="#L714">714</a> 					chunkData = currentIndex + 1;
<a class="jxr_linenumber" name="L715" href="#L715">715</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 					chunkData = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L717" href="#L717">717</a> 				
<a class="jxr_linenumber" name="L718" href="#L718">718</a> 				<strong class="jxr_keyword">if</strong> (modelSubscription.isBrief())
<a class="jxr_linenumber" name="L719" href="#L719">719</a> 					result.getKeyBag().add(resultsKeyBag);
<a class="jxr_linenumber" name="L720" href="#L720">720</a> 				<strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L721" href="#L721">721</a> 					result.setTModelDetail(tmodelDetail);
<a class="jxr_linenumber" name="L722" href="#L722">722</a> 				
<a class="jxr_linenumber" name="L723" href="#L723">723</a> 			}
<a class="jxr_linenumber" name="L724" href="#L724">724</a> 			<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetAssertionStatusReport() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L725" href="#L725">725</a> 				<em class="jxr_comment">// The coverage period doesn't apply here (basically because publisher assertions don't keep operational info).</em>
<a class="jxr_linenumber" name="L726" href="#L726">726</a> 				<em class="jxr_comment">// TODO, JUDDI-873 edit they do now, rewrite this query</em>
<a class="jxr_linenumber" name="L727" href="#L727">727</a> 				GetAssertionStatusReport getAssertionStatusReport = subscriptionFilter.getGetAssertionStatusReport();
<a class="jxr_linenumber" name="L728" href="#L728">728</a>                                 List&lt;?&gt; businessKeysFound = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L729" href="#L729">729</a>                                 businessKeysFound = FindBusinessByPublisherQuery.select(em, <strong class="jxr_keyword">null</strong>, publisher, businessKeysFound);
<a class="jxr_linenumber" name="L730" href="#L730">730</a> 		
<a class="jxr_linenumber" name="L731" href="#L731">731</a>                                 AssertionStatusReport assertionStatusReport  = <strong class="jxr_keyword">new</strong> AssertionStatusReport();
<a class="jxr_linenumber" name="L732" href="#L732">732</a>                                 
<a class="jxr_linenumber" name="L733" href="#L733">733</a> 				List&lt;org.apache.juddi.model.PublisherAssertion&gt; pubAssertionList = org.apache.juddi.query.FindPublisherAssertionByBusinessQuery.select(em, businessKeysFound, getAssertionStatusReport.getCompletionStatus());
<a class="jxr_linenumber" name="L734" href="#L734">734</a>                                 <em class="jxr_comment">//if (pubAssertionList==null)</em>
<a class="jxr_linenumber" name="L735" href="#L735">735</a>                                 <em class="jxr_comment">//    return result;</em>
<a class="jxr_linenumber" name="L736" href="#L736">736</a>                                 <strong class="jxr_keyword">for</strong> (org.apache.juddi.model.PublisherAssertion modelPubAssertion : pubAssertionList) {
<a class="jxr_linenumber" name="L737" href="#L737">737</a> 
<a class="jxr_linenumber" name="L738" href="#L738">738</a>                                         <strong class="jxr_keyword">if</strong> (startPointDate.after(modelPubAssertion.getModified())) {
<a class="jxr_linenumber" name="L739" href="#L739">739</a>                                                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L740" href="#L740">740</a>                                         }
<a class="jxr_linenumber" name="L741" href="#L741">741</a> 
<a class="jxr_linenumber" name="L742" href="#L742">742</a>                                         <strong class="jxr_keyword">if</strong> (endPointDate.before(modelPubAssertion.getModified())) {
<a class="jxr_linenumber" name="L743" href="#L743">743</a>                                                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L744" href="#L744">744</a>                                         }
<a class="jxr_linenumber" name="L745" href="#L745">745</a>                                         org.uddi.api_v3.AssertionStatusItem apiAssertionStatusItem = <strong class="jxr_keyword">new</strong> org.uddi.api_v3.AssertionStatusItem();
<a class="jxr_linenumber" name="L746" href="#L746">746</a> 
<a class="jxr_linenumber" name="L747" href="#L747">747</a>                                         MappingModelToApi.mapAssertionStatusItem(modelPubAssertion, apiAssertionStatusItem, businessKeysFound);
<a class="jxr_linenumber" name="L748" href="#L748">748</a> 
<a class="jxr_linenumber" name="L749" href="#L749">749</a>                                         assertionStatusReport.getAssertionStatusItem().add(apiAssertionStatusItem);
<a class="jxr_linenumber" name="L750" href="#L750">750</a>                                 }
<a class="jxr_linenumber" name="L751" href="#L751">751</a> 
<a class="jxr_linenumber" name="L752" href="#L752">752</a> 				
<a class="jxr_linenumber" name="L753" href="#L753">753</a> 				result.setAssertionStatusReport(assertionStatusReport);
<a class="jxr_linenumber" name="L754" href="#L754">754</a> 			}
<a class="jxr_linenumber" name="L755" href="#L755">755</a> 			
<a class="jxr_linenumber" name="L756" href="#L756">756</a> 			<em class="jxr_comment">// If chunkData contains non-null data, a new token must be created and the token returned in the results</em>
<a class="jxr_linenumber" name="L757" href="#L757">757</a> 			<strong class="jxr_keyword">if</strong> (chunkData != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L758" href="#L758">758</a> 				String chunkToken = CHUNK_TOKEN_PREFIX + UUID.randomUUID();
<a class="jxr_linenumber" name="L759" href="#L759">759</a> 				SubscriptionChunkToken newChunkToken = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/model/SubscriptionChunkToken.html">SubscriptionChunkToken</a>(chunkToken);
<a class="jxr_linenumber" name="L760" href="#L760">760</a> 				newChunkToken.setSubscriptionKey(body.getSubscriptionKey());
<a class="jxr_linenumber" name="L761" href="#L761">761</a> 				newChunkToken.setStartPoint(startPointDate);
<a class="jxr_linenumber" name="L762" href="#L762">762</a> 				newChunkToken.setEndPoint(endPointDate);
<a class="jxr_linenumber" name="L763" href="#L763">763</a> 				newChunkToken.setData(chunkData);
<a class="jxr_linenumber" name="L764" href="#L764">764</a> 	
<a class="jxr_linenumber" name="L765" href="#L765">765</a> 				<strong class="jxr_keyword">int</strong> chunkExpirationMinutes = DEFAULT_CHUNKEXPIRATION_MINUTES;
<a class="jxr_linenumber" name="L766" href="#L766">766</a> 				<strong class="jxr_keyword">try</strong> { 
<a class="jxr_linenumber" name="L767" href="#L767">767</a> 					chunkExpirationMinutes = AppConfig.getConfiguration().getInt(Property.JUDDI_SUBSCRIPTION_CHUNKEXPIRATION_MINUTES); 
<a class="jxr_linenumber" name="L768" href="#L768">768</a> 				}
<a class="jxr_linenumber" name="L769" href="#L769">769</a> 				<strong class="jxr_keyword">catch</strong>(ConfigurationException ce) { 
<a class="jxr_linenumber" name="L770" href="#L770">770</a> 					<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/FatalErrorException.html">FatalErrorException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.configuration.Retrieval"</span>));
<a class="jxr_linenumber" name="L771" href="#L771">771</a> 				}
<a class="jxr_linenumber" name="L772" href="#L772">772</a> 				newChunkToken.setExpiresAfter(<strong class="jxr_keyword">new</strong> Date(System.currentTimeMillis() + ((<strong class="jxr_keyword">long</strong>)chunkExpirationMinutes * 60L * 1000L)));
<a class="jxr_linenumber" name="L773" href="#L773">773</a> 				
<a class="jxr_linenumber" name="L774" href="#L774">774</a> 				em.persist(newChunkToken);
<a class="jxr_linenumber" name="L775" href="#L775">775</a> 				
<a class="jxr_linenumber" name="L776" href="#L776">776</a> 				result.setChunkToken(chunkToken);
<a class="jxr_linenumber" name="L777" href="#L777">777</a> 			}
<a class="jxr_linenumber" name="L778" href="#L778">778</a> 			
<a class="jxr_linenumber" name="L779" href="#L779">779</a> 	        tx.commit();
<a class="jxr_linenumber" name="L780" href="#L780">780</a>                 <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L781" href="#L781">781</a>                 serviceCounter.update(SubscriptionQuery.GET_SUBSCRIPTIONRESULTS, 
<a class="jxr_linenumber" name="L782" href="#L782">782</a>                         QueryStatus.SUCCESS, procTime);
<a class="jxr_linenumber" name="L783" href="#L783">783</a> 
<a class="jxr_linenumber" name="L784" href="#L784">784</a> 	        <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L785" href="#L785">785</a>         } <strong class="jxr_keyword">catch</strong> (DispositionReportFaultMessage drfm) {
<a class="jxr_linenumber" name="L786" href="#L786">786</a>             <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L787" href="#L787">787</a>             serviceCounter.update(SubscriptionQuery.GET_SUBSCRIPTIONRESULTS, 
<a class="jxr_linenumber" name="L788" href="#L788">788</a>                     QueryStatus.FAILED, procTime);                      
<a class="jxr_linenumber" name="L789" href="#L789">789</a>             <strong class="jxr_keyword">throw</strong> drfm;                                                                                                 
<a class="jxr_linenumber" name="L790" href="#L790">790</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L791" href="#L791">791</a> 			<strong class="jxr_keyword">if</strong> (tx.isActive()) {
<a class="jxr_linenumber" name="L792" href="#L792">792</a> 				tx.rollback();
<a class="jxr_linenumber" name="L793" href="#L793">793</a> 			}
<a class="jxr_linenumber" name="L794" href="#L794">794</a> 			em.close();
<a class="jxr_linenumber" name="L795" href="#L795">795</a> 		}
<a class="jxr_linenumber" name="L796" href="#L796">796</a> 	}
<a class="jxr_linenumber" name="L797" href="#L797">797</a> 
<a class="jxr_linenumber" name="L798" href="#L798">798</a> 	@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="L799" href="#L799">799</a> 	<strong class="jxr_keyword">public</strong> List&lt;Subscription&gt; getSubscriptions(String authInfo)
<a class="jxr_linenumber" name="L800" href="#L800">800</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L801" href="#L801">801</a> 	        <strong class="jxr_keyword">long</strong> startTime = System.currentTimeMillis();
<a class="jxr_linenumber" name="L802" href="#L802">802</a> 		EntityManager em = PersistenceManager.getEntityManager();
<a class="jxr_linenumber" name="L803" href="#L803">803</a> 		EntityTransaction tx = em.getTransaction();
<a class="jxr_linenumber" name="L804" href="#L804">804</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L805" href="#L805">805</a>                         tx.begin();
<a class="jxr_linenumber" name="L806" href="#L806">806</a> 	
<a class="jxr_linenumber" name="L807" href="#L807">807</a> 			UddiEntityPublisher publisher = <strong class="jxr_keyword">this</strong>.getEntityPublisher(em, authInfo);
<a class="jxr_linenumber" name="L808" href="#L808">808</a> 			
<a class="jxr_linenumber" name="L809" href="#L809">809</a> 			List&lt;Subscription&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Subscription&gt;(0);
<a class="jxr_linenumber" name="L810" href="#L810">810</a> 			
<a class="jxr_linenumber" name="L811" href="#L811">811</a> 			List&lt;org.apache.juddi.model.Subscription&gt; modelSubscriptionList = (List&lt;org.apache.juddi.model.Subscription&gt;)FindSubscriptionByPublisherQuery.select(em, publisher.getAuthorizedName());
<a class="jxr_linenumber" name="L812" href="#L812">812</a> 			<strong class="jxr_keyword">if</strong> (modelSubscriptionList != <strong class="jxr_keyword">null</strong> &amp;&amp; modelSubscriptionList.size() &gt; 0) {
<a class="jxr_linenumber" name="L813" href="#L813">813</a> 				<strong class="jxr_keyword">for</strong> (org.apache.juddi.model.Subscription modelSubscription : modelSubscriptionList) {
<a class="jxr_linenumber" name="L814" href="#L814">814</a> 					
<a class="jxr_linenumber" name="L815" href="#L815">815</a> 					Subscription apiSubscription = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/model/Subscription.html">Subscription</a>();
<a class="jxr_linenumber" name="L816" href="#L816">816</a> 					
<a class="jxr_linenumber" name="L817" href="#L817">817</a> 					MappingModelToApi.mapSubscription(modelSubscription, apiSubscription);
<a class="jxr_linenumber" name="L818" href="#L818">818</a> 					
<a class="jxr_linenumber" name="L819" href="#L819">819</a> 					result.add(apiSubscription);
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 				}
<a class="jxr_linenumber" name="L821" href="#L821">821</a> 			}
<a class="jxr_linenumber" name="L822" href="#L822">822</a> 	        
<a class="jxr_linenumber" name="L823" href="#L823">823</a> 	        tx.commit();
<a class="jxr_linenumber" name="L824" href="#L824">824</a>                 <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L825" href="#L825">825</a>                 serviceCounter.update(SubscriptionQuery.GET_SUBSCRIPTIONS, 
<a class="jxr_linenumber" name="L826" href="#L826">826</a>                         QueryStatus.SUCCESS, procTime);
<a class="jxr_linenumber" name="L827" href="#L827">827</a> 
<a class="jxr_linenumber" name="L828" href="#L828">828</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L829" href="#L829">829</a>         } <strong class="jxr_keyword">catch</strong> (DispositionReportFaultMessage drfm) {
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                     <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L831" href="#L831">831</a>                     serviceCounter.update(SubscriptionQuery.GET_SUBSCRIPTIONS, 
<a class="jxr_linenumber" name="L832" href="#L832">832</a>                             QueryStatus.FAILED, procTime);                      
<a class="jxr_linenumber" name="L833" href="#L833">833</a>                     <strong class="jxr_keyword">throw</strong> drfm;                                                                                                 		
<a class="jxr_linenumber" name="L834" href="#L834">834</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L835" href="#L835">835</a> 			<strong class="jxr_keyword">if</strong> (tx.isActive()) {
<a class="jxr_linenumber" name="L836" href="#L836">836</a> 				tx.rollback();
<a class="jxr_linenumber" name="L837" href="#L837">837</a> 			}
<a class="jxr_linenumber" name="L838" href="#L838">838</a> 			em.close();
<a class="jxr_linenumber" name="L839" href="#L839">839</a> 		}
<a class="jxr_linenumber" name="L840" href="#L840">840</a> 	}
<a class="jxr_linenumber" name="L841" href="#L841">841</a> 
<a class="jxr_linenumber" name="L842" href="#L842">842</a> 
<a class="jxr_linenumber" name="L843" href="#L843">843</a> 	<em class="jxr_comment">/* </em>
<a class="jxr_linenumber" name="L844" href="#L844">844</a> <em class="jxr_comment">	 * @see org.uddi.v3_service.UDDISubscriptionPortType#saveSubscription(java.lang.String, javax.xml.ws.Holder)</em>
<a class="jxr_linenumber" name="L845" href="#L845">845</a> <em class="jxr_comment">	 * </em>
<a class="jxr_linenumber" name="L846" href="#L846">846</a> <em class="jxr_comment">	 * Notes: The matching keys are saved on a new subscription (or renewed subscription) for the find_* filters only.  With the other filter </em>
<a class="jxr_linenumber" name="L847" href="#L847">847</a> <em class="jxr_comment">	 * types, taking a snapshot of the matches doesn't make sense.</em>
<a class="jxr_linenumber" name="L848" href="#L848">848</a> <em class="jxr_comment">	 * </em>
<a class="jxr_linenumber" name="L849" href="#L849">849</a> <em class="jxr_comment">	 */</em>
<a class="jxr_linenumber" name="L850" href="#L850">850</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> saveSubscription(String authInfo,
<a class="jxr_linenumber" name="L851" href="#L851">851</a> 			Holder&lt;List&lt;Subscription&gt;&gt; subscription)
<a class="jxr_linenumber" name="L852" href="#L852">852</a> 			<strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L853" href="#L853">853</a> 	        <strong class="jxr_keyword">long</strong> startTime = System.currentTimeMillis();
<a class="jxr_linenumber" name="L854" href="#L854">854</a> 
<a class="jxr_linenumber" name="L855" href="#L855">855</a> 		EntityManager em = PersistenceManager.getEntityManager();
<a class="jxr_linenumber" name="L856" href="#L856">856</a> 		EntityTransaction tx = em.getTransaction();
<a class="jxr_linenumber" name="L857" href="#L857">857</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L858" href="#L858">858</a> 			tx.begin();
<a class="jxr_linenumber" name="L859" href="#L859">859</a> 	
<a class="jxr_linenumber" name="L860" href="#L860">860</a> 			UddiEntityPublisher publisher = <strong class="jxr_keyword">this</strong>.getEntityPublisher(em, authInfo);
<a class="jxr_linenumber" name="L861" href="#L861">861</a> 			publisher.populateKeyGeneratorKeys(em);
<a class="jxr_linenumber" name="L862" href="#L862">862</a> 			<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/validation/ValidateSubscription.html">ValidateSubscription</a>(publisher).validateSubscriptions(em, subscription.value, publisher);
<a class="jxr_linenumber" name="L863" href="#L863">863</a> 			
<a class="jxr_linenumber" name="L864" href="#L864">864</a> 			List&lt;org.uddi.sub_v3.Subscription&gt; apiSubscriptionList = subscription.value;
<a class="jxr_linenumber" name="L865" href="#L865">865</a> 			<strong class="jxr_keyword">for</strong> (org.uddi.sub_v3.Subscription apiSubscription : apiSubscriptionList) {
<a class="jxr_linenumber" name="L866" href="#L866">866</a> 				
<a class="jxr_linenumber" name="L867" href="#L867">867</a> 				org.apache.juddi.model.Subscription modelSubscription = <strong class="jxr_keyword">new</strong> org.apache.juddi.model.Subscription();
<a class="jxr_linenumber" name="L868" href="#L868">868</a> 				
<a class="jxr_linenumber" name="L869" href="#L869">869</a> 				Object existing = em.find(org.apache.juddi.model.Subscription.<strong class="jxr_keyword">class</strong>, apiSubscription.getSubscriptionKey());
<a class="jxr_linenumber" name="L870" href="#L870">870</a> 				<strong class="jxr_keyword">if</strong> (existing != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L871" href="#L871">871</a> 					org.apache.juddi.model.Subscription existingEntity = (org.apache.juddi.model.Subscription) existing;
<a class="jxr_linenumber" name="L872" href="#L872">872</a> 					doRenewal(existingEntity, apiSubscription);
<a class="jxr_linenumber" name="L873" href="#L873">873</a> 					<em class="jxr_comment">//carrying over the created and last notified dates if this is a renewal.</em>
<a class="jxr_linenumber" name="L874" href="#L874">874</a> 					modelSubscription.setCreateDate(existingEntity.getCreateDate());
<a class="jxr_linenumber" name="L875" href="#L875">875</a> 					modelSubscription.setLastNotified(existingEntity.getLastNotified());
<a class="jxr_linenumber" name="L876" href="#L876">876</a> 					em.remove(existing);
<a class="jxr_linenumber" name="L877" href="#L877">877</a> 				} <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L878" href="#L878">878</a> 					modelSubscription.setCreateDate(<strong class="jxr_keyword">new</strong> Date());
<a class="jxr_linenumber" name="L879" href="#L879">879</a> 				}
<a class="jxr_linenumber" name="L880" href="#L880">880</a>                               
<a class="jxr_linenumber" name="L881" href="#L881">881</a> 				doSubscriptionExpirationDate(apiSubscription);
<a class="jxr_linenumber" name="L882" href="#L882">882</a> 				
<a class="jxr_linenumber" name="L883" href="#L883">883</a> 				MappingApiToModel.mapSubscription(apiSubscription, modelSubscription);
<a class="jxr_linenumber" name="L884" href="#L884">884</a> 				
<a class="jxr_linenumber" name="L885" href="#L885">885</a> 				modelSubscription.setAuthorizedName(publisher.getAuthorizedName());
<a class="jxr_linenumber" name="L886" href="#L886">886</a> 				
<a class="jxr_linenumber" name="L887" href="#L887">887</a> 				<em class="jxr_comment">// Add the matching keys to the match collection</em>
<a class="jxr_linenumber" name="L888" href="#L888">888</a> 				List&lt;?&gt; keys = getSubscriptionMatches(apiSubscription.getSubscriptionFilter(), em);
<a class="jxr_linenumber" name="L889" href="#L889">889</a> 				<strong class="jxr_keyword">if</strong> (keys != <strong class="jxr_keyword">null</strong> &amp;&amp; keys.size() &gt; 0) {
<a class="jxr_linenumber" name="L890" href="#L890">890</a> 					<strong class="jxr_keyword">for</strong> (Object key : keys) {
<a class="jxr_linenumber" name="L891" href="#L891">891</a> 						SubscriptionMatch subMatch = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/model/SubscriptionMatch.html">SubscriptionMatch</a>(modelSubscription, (String)key);
<a class="jxr_linenumber" name="L892" href="#L892">892</a> 						modelSubscription.getSubscriptionMatches().add(subMatch);
<a class="jxr_linenumber" name="L893" href="#L893">893</a> 					}
<a class="jxr_linenumber" name="L894" href="#L894">894</a> 				}
<a class="jxr_linenumber" name="L895" href="#L895">895</a> 				
<a class="jxr_linenumber" name="L896" href="#L896">896</a> 				em.persist(modelSubscription);
<a class="jxr_linenumber" name="L897" href="#L897">897</a> 			}
<a class="jxr_linenumber" name="L898" href="#L898">898</a> 	
<a class="jxr_linenumber" name="L899" href="#L899">899</a> 			tx.commit();
<a class="jxr_linenumber" name="L900" href="#L900">900</a> 	                <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L901" href="#L901">901</a> 	                serviceCounter.update(SubscriptionQuery.SAVE_SUBSCRIPTION, 
<a class="jxr_linenumber" name="L902" href="#L902">902</a> 	                        QueryStatus.SUCCESS, procTime);
<a class="jxr_linenumber" name="L903" href="#L903">903</a> 	        } <strong class="jxr_keyword">catch</strong> (DispositionReportFaultMessage drfm) {
<a class="jxr_linenumber" name="L904" href="#L904">904</a>                     <strong class="jxr_keyword">long</strong> procTime = System.currentTimeMillis() - startTime;
<a class="jxr_linenumber" name="L905" href="#L905">905</a>                     serviceCounter.update(SubscriptionQuery.SAVE_SUBSCRIPTION, 
<a class="jxr_linenumber" name="L906" href="#L906">906</a>                             QueryStatus.FAILED, procTime);                      
<a class="jxr_linenumber" name="L907" href="#L907">907</a>                     <strong class="jxr_keyword">throw</strong> drfm;                                                                                                                 
<a class="jxr_linenumber" name="L908" href="#L908">908</a> 		} <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L909" href="#L909">909</a> 			<strong class="jxr_keyword">if</strong> (tx.isActive()) {
<a class="jxr_linenumber" name="L910" href="#L910">910</a> 				tx.rollback();
<a class="jxr_linenumber" name="L911" href="#L911">911</a> 			}
<a class="jxr_linenumber" name="L912" href="#L912">912</a> 			em.close();
<a class="jxr_linenumber" name="L913" href="#L913">913</a> 		}
<a class="jxr_linenumber" name="L914" href="#L914">914</a> 	}
<a class="jxr_linenumber" name="L915" href="#L915">915</a> 
<a class="jxr_linenumber" name="L916" href="#L916">916</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L917" href="#L917">917</a> <em class="jxr_javadoccomment">	 * Will perform the necessary logic for when a subscription is renewed (evidenced by a subscription with the same key in existence).  </em>
<a class="jxr_linenumber" name="L918" href="#L918">918</a> <em class="jxr_javadoccomment">	 * In general, the appropriate data is copied from the stored subscription to the renewal subscription request.</em>
<a class="jxr_linenumber" name="L919" href="#L919">919</a> <em class="jxr_javadoccomment">	 * </em>
<a class="jxr_linenumber" name="L920" href="#L920">920</a> <em class="jxr_javadoccomment">	 * @param existingSubscription - existing stored subscription</em>
<a class="jxr_linenumber" name="L921" href="#L921">921</a> <em class="jxr_javadoccomment">	 * @param apiSubscription - renewal subscription request</em>
<a class="jxr_linenumber" name="L922" href="#L922">922</a> <em class="jxr_javadoccomment">	 * @throws DispositionReportFaultMessage </em>
<a class="jxr_linenumber" name="L923" href="#L923">923</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L924" href="#L924">924</a> 	<strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doRenewal(org.apache.juddi.model.Subscription existingSubscription, org.uddi.sub_v3.Subscription apiSubscription) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L925" href="#L925">925</a> 		<strong class="jxr_keyword">if</strong> (apiSubscription.getSubscriptionFilter() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L926" href="#L926">926</a> 			String rawFilter = existingSubscription.getSubscriptionFilter();
<a class="jxr_linenumber" name="L927" href="#L927">927</a> 			<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L928" href="#L928">928</a> 				SubscriptionFilter existingFilter = (SubscriptionFilter)JAXBMarshaller.unmarshallFromString(rawFilter, <span class="jxr_string">"org.uddi.sub_v3"</span>);
<a class="jxr_linenumber" name="L929" href="#L929">929</a> 				apiSubscription.setSubscriptionFilter(existingFilter);
<a class="jxr_linenumber" name="L930" href="#L930">930</a> 			} 
<a class="jxr_linenumber" name="L931" href="#L931">931</a> 			<strong class="jxr_keyword">catch</strong> (JAXBException e) {
<a class="jxr_linenumber" name="L932" href="#L932">932</a> 				logger.error(<span class="jxr_string">"JAXB Exception while marshalling subscription filter"</span>, e);
<a class="jxr_linenumber" name="L933" href="#L933">933</a> 				<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/FatalErrorException.html">FatalErrorException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.Unspecified"</span>));
<a class="jxr_linenumber" name="L934" href="#L934">934</a> 			} 
<a class="jxr_linenumber" name="L935" href="#L935">935</a> 		}
<a class="jxr_linenumber" name="L936" href="#L936">936</a> 		
<a class="jxr_linenumber" name="L937" href="#L937">937</a> 	}
<a class="jxr_linenumber" name="L938" href="#L938">938</a> 	
<a class="jxr_linenumber" name="L939" href="#L939">939</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L940" href="#L940">940</a> <em class="jxr_javadoccomment">	 * Will add the expiration date to the provided subscription request.  Date is earlier of user provided date and the system default</em>
<a class="jxr_linenumber" name="L941" href="#L941">941</a> <em class="jxr_javadoccomment">	 * </em>
<a class="jxr_linenumber" name="L942" href="#L942">942</a> <em class="jxr_javadoccomment">	 * @param apiSubscription</em>
<a class="jxr_linenumber" name="L943" href="#L943">943</a> <em class="jxr_javadoccomment">	 * @throws DispositionReportFaultMessage</em>
<a class="jxr_linenumber" name="L944" href="#L944">944</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L945" href="#L945">945</a> 	<strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doSubscriptionExpirationDate(org.uddi.sub_v3.Subscription apiSubscription) <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L946" href="#L946">946</a> 
<a class="jxr_linenumber" name="L947" href="#L947">947</a> 		<strong class="jxr_keyword">int</strong> subscriptionExpirationDays = DEFAULT_SUBSCRIPTIONEXPIRATION_DAYS;
<a class="jxr_linenumber" name="L948" href="#L948">948</a> 		<strong class="jxr_keyword">try</strong> { 
<a class="jxr_linenumber" name="L949" href="#L949">949</a> 			subscriptionExpirationDays = AppConfig.getConfiguration().getInt(Property.JUDDI_SUBSCRIPTION_EXPIRATION_DAYS); 
<a class="jxr_linenumber" name="L950" href="#L950">950</a> 		}
<a class="jxr_linenumber" name="L951" href="#L951">951</a> 		<strong class="jxr_keyword">catch</strong>(ConfigurationException ce) { 
<a class="jxr_linenumber" name="L952" href="#L952">952</a> 			<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/FatalErrorException.html">FatalErrorException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.configuration.Retrieval"</span>));
<a class="jxr_linenumber" name="L953" href="#L953">953</a> 		}
<a class="jxr_linenumber" name="L954" href="#L954">954</a> 
<a class="jxr_linenumber" name="L955" href="#L955">955</a> 		GregorianCalendar expirationDate = <strong class="jxr_keyword">new</strong> GregorianCalendar();
<a class="jxr_linenumber" name="L956" href="#L956">956</a> 		expirationDate.add(GregorianCalendar.DAY_OF_MONTH, subscriptionExpirationDays);
<a class="jxr_linenumber" name="L957" href="#L957">957</a> 		
<a class="jxr_linenumber" name="L958" href="#L958">958</a> 		<em class="jxr_comment">// The expiration date is the earlier of the provided date and that specified by the parameter.</em>
<a class="jxr_linenumber" name="L959" href="#L959">959</a> 		<strong class="jxr_keyword">if</strong> (apiSubscription.getExpiresAfter() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L960" href="#L960">960</a> 			GregorianCalendar userExpiration = apiSubscription.getExpiresAfter().toGregorianCalendar();
<a class="jxr_linenumber" name="L961" href="#L961">961</a> 			<strong class="jxr_keyword">if</strong> (userExpiration.getTimeInMillis() &lt; expirationDate.getTimeInMillis())
<a class="jxr_linenumber" name="L962" href="#L962">962</a> 				expirationDate.setTimeInMillis(userExpiration.getTimeInMillis());
<a class="jxr_linenumber" name="L963" href="#L963">963</a> 		}
<a class="jxr_linenumber" name="L964" href="#L964">964</a> 
<a class="jxr_linenumber" name="L965" href="#L965">965</a> 		<strong class="jxr_keyword">try</strong> { 
<a class="jxr_linenumber" name="L966" href="#L966">966</a> 			DatatypeFactory df = DatatypeFactory.newInstance();
<a class="jxr_linenumber" name="L967" href="#L967">967</a> 			apiSubscription.setExpiresAfter(df.newXMLGregorianCalendar(expirationDate));
<a class="jxr_linenumber" name="L968" href="#L968">968</a> 		}
<a class="jxr_linenumber" name="L969" href="#L969">969</a> 		<strong class="jxr_keyword">catch</strong>(DatatypeConfigurationException ce) { 
<a class="jxr_linenumber" name="L970" href="#L970">970</a> 			<strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/FatalErrorException.html">FatalErrorException</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/juddi/v3/error/ErrorMessage.html">ErrorMessage</a>(<span class="jxr_string">"errors.Unspecified"</span>));
<a class="jxr_linenumber" name="L971" href="#L971">971</a> 		}
<a class="jxr_linenumber" name="L972" href="#L972">972</a> 		
<a class="jxr_linenumber" name="L973" href="#L973">973</a> 	}
<a class="jxr_linenumber" name="L974" href="#L974">974</a> 
<a class="jxr_linenumber" name="L975" href="#L975">975</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L976" href="#L976">976</a> <em class="jxr_javadoccomment">	 * Will take a snapshot of the keys that match the subscription filter return them.  Currently, keys are only returned for the find_*</em>
<a class="jxr_linenumber" name="L977" href="#L977">977</a> <em class="jxr_javadoccomment">	 * filters.  It seems redundant to return the keys in the get_*Detail filters.</em>
<a class="jxr_linenumber" name="L978" href="#L978">978</a> <em class="jxr_javadoccomment">	 * </em>
<a class="jxr_linenumber" name="L979" href="#L979">979</a> <em class="jxr_javadoccomment">	 * @param subscriptionFilter</em>
<a class="jxr_linenumber" name="L980" href="#L980">980</a> <em class="jxr_javadoccomment">	 * @param em</em>
<a class="jxr_linenumber" name="L981" href="#L981">981</a> <em class="jxr_javadoccomment">	 * @return a list of subscription matches</em>
<a class="jxr_linenumber" name="L982" href="#L982">982</a> <em class="jxr_javadoccomment">	 * @throws DispositionReportFaultMessage</em>
<a class="jxr_linenumber" name="L983" href="#L983">983</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L984" href="#L984">984</a> 	<strong class="jxr_keyword">protected</strong> List&lt;?&gt; getSubscriptionMatches(SubscriptionFilter subscriptionFilter, EntityManager em) 
<a class="jxr_linenumber" name="L985" href="#L985">985</a> 			 <strong class="jxr_keyword">throws</strong> DispositionReportFaultMessage {
<a class="jxr_linenumber" name="L986" href="#L986">986</a> 		
<a class="jxr_linenumber" name="L987" href="#L987">987</a> 		
<a class="jxr_linenumber" name="L988" href="#L988">988</a> 		List&lt;?&gt; keys = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L989" href="#L989">989</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindBinding() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L990" href="#L990">990</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="L991" href="#L991">991</a> 			findQualifiers.mapApiFindQualifiers(subscriptionFilter.getFindBinding().getFindQualifiers());
<a class="jxr_linenumber" name="L992" href="#L992">992</a> 			keys = InquiryHelper.findBinding(subscriptionFilter.getFindBinding(), findQualifiers, em);
<a class="jxr_linenumber" name="L993" href="#L993">993</a> 		}
<a class="jxr_linenumber" name="L994" href="#L994">994</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindBusiness() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L995" href="#L995">995</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="L996" href="#L996">996</a> 			findQualifiers.mapApiFindQualifiers(subscriptionFilter.getFindBusiness().getFindQualifiers());
<a class="jxr_linenumber" name="L997" href="#L997">997</a> 			keys = InquiryHelper.findBusiness(subscriptionFilter.getFindBusiness(), findQualifiers, em);
<a class="jxr_linenumber" name="L998" href="#L998">998</a> 		}
<a class="jxr_linenumber" name="L999" href="#L999">999</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindService() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</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="L1001" href="#L1001">1001</a> 			findQualifiers.mapApiFindQualifiers(subscriptionFilter.getFindService().getFindQualifiers());
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a> 			keys = InquiryHelper.findService(subscriptionFilter.getFindService(), findQualifiers, em);
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a> 		}
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindTModel() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</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="L1006" href="#L1006">1006</a> 			findQualifiers.mapApiFindQualifiers(subscriptionFilter.getFindTModel().getFindQualifiers());
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> 			keys = InquiryHelper.findTModel(subscriptionFilter.getFindTModel(), findQualifiers, em);
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a> 		}
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getFindRelatedBusinesses() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a> 			<em class="jxr_comment">// TODO: should we bother taking a snapshot of these?</em>
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a> 		}
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetBindingDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a> 			<em class="jxr_comment">//keys = subscriptionFilter.getGetBindingDetail().getBindingKey();</em>
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a> 			<em class="jxr_comment">// Nothing needs to be done</em>
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a> 		}
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetBusinessDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a> 			<em class="jxr_comment">//keys = subscriptionFilter.getGetBusinessDetail().getBusinessKey();</em>
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a> 			<em class="jxr_comment">// Nothing needs to be done</em>
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a> 		}
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetServiceDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a> 			<em class="jxr_comment">//keys = subscriptionFilter.getGetServiceDetail().getServiceKey();</em>
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a> 			<em class="jxr_comment">// Nothing needs to be done</em>
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a> 		}
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetTModelDetail() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a> 			<em class="jxr_comment">//keys = subscriptionFilter.getGetTModelDetail().getTModelKey();</em>
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a> 			<em class="jxr_comment">// Nothing needs to be done</em>
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a> 		}
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a> 		<strong class="jxr_keyword">if</strong> (subscriptionFilter.getGetAssertionStatusReport() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a> 			<em class="jxr_comment">// Nothing needs to be done</em>
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a> 		}
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a> 		<strong class="jxr_keyword">return</strong> keys;
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a> 		
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a> 	}
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a> 	
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a> 	<strong class="jxr_keyword">private</strong> List&lt;String&gt; getMissingKeys(List&lt;?&gt; currentMatchingKeys, List&lt;SubscriptionMatch&gt; subscriptionMatches) {
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a> 
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a> 		List&lt;String&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;(subscriptionMatches.size());
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a> 		<strong class="jxr_keyword">for</strong> (SubscriptionMatch subMatch : subscriptionMatches)
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a> 			result.add(subMatch.getEntityKey());
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a> 		
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a> 		result.removeAll(currentMatchingKeys);
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a> 		
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a> 		<strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a> 	}
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a> 	
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</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>
