<!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>RequestHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.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-2004 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>  <strong class="jxr_keyword">package</strong> org.apache.juddi.v3.client.transport.wrapper;
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> java.io.StringWriter;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.rmi.Remote;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> javax.xml.XMLConstants;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerException;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
<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.juddi.jaxb.JAXBMarshaller;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.AssertionStatusItem;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.AssertionStatusReport;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.CompletionStatus;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.DispositionReport;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetAssertionStatusReport;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.GetPublisherAssertions;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.PublisherAssertion;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.PublisherAssertions;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.PublisherAssertionsResponse;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.uddi.api_v3.SetPublisherAssertions;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.uddi.v3_service.DispositionReportFaultMessage;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> * @author Tom Cunningham (tcunning@apache.org)</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> * @author Kurt Stam (kurt.stam@redhat.com)</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/juddi/v3/client/transport/wrapper/RequestHandler.html">RequestHandler</a> {
<a class="jxr_linenumber" name="L55" href="#L55">55</a>    <em class="jxr_comment">// private reference to the webapp's logger.</em>
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          <em class="jxr_comment">//private static Log log = LogFactory.getLog(RequestHandler.class);</em>
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  
<a class="jxr_linenumber" name="L58" href="#L58">58</a>          <em class="jxr_comment">// XML Document Builder</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> DocumentBuilder docBuilder = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> String version;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> String operation;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
<a class="jxr_linenumber" name="L64" href="#L64">64</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> Remote portType;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> String methodName;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> Class&lt;?&gt; operationClass;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TransformerFactory transFactory = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">         * Grab the local name of the UDDI request element from the UDDI</em>
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">         * Request. If a value isn't returned (either null or an empty String is</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment">         * returned) then throw a FatalError exception. This is probably a</em>
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment">         * configuration problem related to the XML Parser that jUDDI is using.</em>
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment">         *</em>
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment">         * @param uddiReq</em>
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment">         * @return the operation name</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment">         * @throws Exception</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          <strong class="jxr_keyword">public</strong> String getOperation(Element uddiReq) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L80" href="#L80">80</a>                  <strong class="jxr_keyword">if</strong> (uddiReq == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L81" href="#L81">81</a>                          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(<span class="jxr_string">"UDDI Request is null"</span>);
<a class="jxr_linenumber" name="L82" href="#L82">82</a>                  }
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  
<a class="jxr_linenumber" name="L84" href="#L84">84</a>                  String operation = uddiReq.getLocalName();
<a class="jxr_linenumber" name="L85" href="#L85">85</a>                  <strong class="jxr_keyword">if</strong> ((operation == <strong class="jxr_keyword">null</strong>) || (operation.trim().length() == 0)) {
<a class="jxr_linenumber" name="L86" href="#L86">86</a>                          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(<span class="jxr_string">"operation "</span> + operation + <span class="jxr_string">" not supported"</span>);
<a class="jxr_linenumber" name="L87" href="#L87">87</a>                  }
<a class="jxr_linenumber" name="L88" href="#L88">88</a>                  setOperation(operation);
<a class="jxr_linenumber" name="L89" href="#L89">89</a>                  <strong class="jxr_keyword">return</strong> operation;
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          }
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment">         * Grab the generic attribute value (version value). If one isn't</em>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment">         * specified or the value specified is not "2.0" then throw an exception</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">         * (this value must be specified for all UDDI requests and currently</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">         * only version 2.0 UDDI requests are supported).</em>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment">         *</em>
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <em class="jxr_javadoccomment">         * @param uddiReq</em>
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <em class="jxr_javadoccomment">         * @return version</em>
<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment">         * @throws Exception</em>
<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         <strong class="jxr_keyword">public</strong> String getVersion(Element uddiReq, String operation) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L103" href="#L103">103</a>                 String version = uddiReq.getAttribute(<span class="jxr_string">"generic"</span>);
<a class="jxr_linenumber" name="L104" href="#L104">104</a>                 <strong class="jxr_keyword">if</strong> ((version == <strong class="jxr_keyword">null</strong>) || (<span class="jxr_string">""</span>.equals(version))) {
<a class="jxr_linenumber" name="L105" href="#L105">105</a>                         <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"urn:uddi-org:api_v3"</span>.equals(uddiReq.getNamespaceURI())) {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>                                 version = <span class="jxr_string">"3.0"</span>;
<a class="jxr_linenumber" name="L107" href="#L107">107</a>                         }
<a class="jxr_linenumber" name="L108" href="#L108">108</a>                 }
<a class="jxr_linenumber" name="L109" href="#L109">109</a>                 <strong class="jxr_keyword">if</strong> (!<span class="jxr_string">"3.0"</span>.equals(version)) {
<a class="jxr_linenumber" name="L110" href="#L110">110</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(<span class="jxr_string">"version needs to be 3.0"</span>);
<a class="jxr_linenumber" name="L111" href="#L111">111</a>                 }
<a class="jxr_linenumber" name="L112" href="#L112">112</a>                 setVersion(version);
<a class="jxr_linenumber" name="L113" href="#L113">113</a>                 <strong class="jxr_keyword">return</strong> version;
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         }
<a class="jxr_linenumber" name="L115" href="#L115">115</a> 
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">synchronized</strong> String getText(Element element) <strong class="jxr_keyword">throws</strong> TransformerException {
<a class="jxr_linenumber" name="L117" href="#L117">117</a>                 <strong class="jxr_keyword">if</strong> (transFactory == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L118" href="#L118">118</a>                         transFactory = TransformerFactory.newInstance();
<a class="jxr_linenumber" name="L119" href="#L119">119</a>                         transFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L120" href="#L120">120</a>                         transFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L121" href="#L121">121</a>                 }
<a class="jxr_linenumber" name="L122" href="#L122">122</a>                 Transformer trans = transFactory.newTransformer();
<a class="jxr_linenumber" name="L123" href="#L123">123</a>                 StringWriter sw = <strong class="jxr_keyword">new</strong> StringWriter();
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                 trans.transform(<strong class="jxr_keyword">new</strong> DOMSource(element), <strong class="jxr_keyword">new</strong> StreamResult(sw));
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                 <strong class="jxr_keyword">return</strong> sw.toString();
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         }
<a class="jxr_linenumber" name="L127" href="#L127">127</a> 
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">public</strong> Node invoke(Element uddiReq) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L130" href="#L130">130</a>                 Node response = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L131" href="#L131">131</a>     <em class="jxr_comment">// Create a new 'temp' XML element to use as a container </em>
<a class="jxr_linenumber" name="L132" href="#L132">132</a>                 <em class="jxr_comment">// in which to marshal the UDDI response data into.</em>
<a class="jxr_linenumber" name="L133" href="#L133">133</a>                 DocumentBuilder docBuilder = getDocumentBuilder();
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 Document document = docBuilder.newDocument();
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                 Element element = document.createElement(<span class="jxr_string">"temp"</span>);
<a class="jxr_linenumber" name="L136" href="#L136">136</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L137" href="#L137">137</a>       <em class="jxr_comment">// Lookup the appropriate XML handler.  Throw an </em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a>                         <em class="jxr_comment">// UnsupportedException if one could not be located.</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a>                         <em class="jxr_comment">//String reqString = getText(uddiReq);</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a>                         <em class="jxr_comment">//Object uddiReqObj = JAXBMarshaller.unmarshallFromString(reqString, "org.uddi.api_v3");</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a>                         Object uddiReqObj = JAXBMarshaller.unmarshallFromElement(uddiReq, <span class="jxr_string">"org.uddi.api_v3"</span>);
<a class="jxr_linenumber" name="L142" href="#L142">142</a>                         Object result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L143" href="#L143">143</a>                         <strong class="jxr_keyword">if</strong> (operationClass.equals(GetAssertionStatusReport.<strong class="jxr_keyword">class</strong>)) {
<a class="jxr_linenumber" name="L144" href="#L144">144</a>                                 GetAssertionStatusReport getAssertionStatusReport = (GetAssertionStatusReport) uddiReqObj;
<a class="jxr_linenumber" name="L145" href="#L145">145</a>                                 Method method = portType.getClass().getMethod(methodName, String.<strong class="jxr_keyword">class</strong>, CompletionStatus.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L146" href="#L146">146</a>                                 result = method.invoke(portType, getAssertionStatusReport.getAuthInfo(), getAssertionStatusReport.getCompletionStatus());
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                                 AssertionStatusReport assertionStatusReport = <strong class="jxr_keyword">new</strong> AssertionStatusReport();
<a class="jxr_linenumber" name="L148" href="#L148">148</a>                                 assertionStatusReport.getAssertionStatusItem().addAll((List&lt;AssertionStatusItem&gt;) result);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>                                 result = assertionStatusReport;
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (operationClass.equals(SetPublisherAssertions.<strong class="jxr_keyword">class</strong>)) {
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                                 SetPublisherAssertions setPublisherAssertions = (SetPublisherAssertions) uddiReqObj;
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                                 Method method = portType.getClass().getMethod(methodName, String.<strong class="jxr_keyword">class</strong>, Holder.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L153" href="#L153">153</a>                                 Holder&lt;List&lt;PublisherAssertion&gt;&gt; holder = <strong class="jxr_keyword">new</strong> Holder&lt;List&lt;PublisherAssertion&gt;&gt;(setPublisherAssertions.getPublisherAssertion());
<a class="jxr_linenumber" name="L154" href="#L154">154</a>                                 result = method.invoke(portType, setPublisherAssertions.getAuthInfo(), holder);
<a class="jxr_linenumber" name="L155" href="#L155">155</a>                                 PublisherAssertions assertions = <strong class="jxr_keyword">new</strong> PublisherAssertions();
<a class="jxr_linenumber" name="L156" href="#L156">156</a>                                 <strong class="jxr_keyword">if</strong> (holder.value != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L157" href="#L157">157</a>                                         assertions.getPublisherAssertion().addAll(holder.value);
<a class="jxr_linenumber" name="L158" href="#L158">158</a>                                 }
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                                 result = assertions;
<a class="jxr_linenumber" name="L160" href="#L160">160</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (operationClass.equals(GetPublisherAssertions.<strong class="jxr_keyword">class</strong>)) {
<a class="jxr_linenumber" name="L161" href="#L161">161</a>                                 GetPublisherAssertions getPublisherAssertions = (GetPublisherAssertions) uddiReqObj;
<a class="jxr_linenumber" name="L162" href="#L162">162</a>                                 Method method = portType.getClass().getMethod(methodName, String.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                                 result = method.invoke(portType, getPublisherAssertions.getAuthInfo());
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                                 List&lt;PublisherAssertion&gt; assertionList = (List&lt;PublisherAssertion&gt;) result;
<a class="jxr_linenumber" name="L165" href="#L165">165</a>                                 PublisherAssertionsResponse publisherAssertionsResponse = <strong class="jxr_keyword">new</strong> PublisherAssertionsResponse();
<a class="jxr_linenumber" name="L166" href="#L166">166</a>                                 <strong class="jxr_keyword">if</strong> (assertionList != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L167" href="#L167">167</a>                                         publisherAssertionsResponse.getPublisherAssertion().addAll(assertionList);
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                                 }
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                                 result = publisherAssertionsResponse;
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                                 Method method = portType.getClass().getMethod(methodName, operationClass);
<a class="jxr_linenumber" name="L172" href="#L172">172</a>                                 result = method.invoke(portType, (Object) uddiReqObj);
<a class="jxr_linenumber" name="L173" href="#L173">173</a>                         }
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>       <em class="jxr_comment">// Lookup the appropriate response handler which will</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a>                         <em class="jxr_comment">// be used to marshal the UDDI object into the appropriate </em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a>                         <em class="jxr_comment">// xml format.</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a>                         <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_comment">                         IHandler responseHandler = maker.lookup(uddiResObj.getClass().getName());</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_comment">                         if (responseHandler == null)</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_comment">                         throw new FatalErrorException("The response object " +</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_comment">                         "type is unknown: " +uddiResObj.getClass().getName());</em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_comment">                         */</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a>       <em class="jxr_comment">// Lookup the appropriate response handler and marshal </em>
<a class="jxr_linenumber" name="L185" href="#L185">185</a>                         <em class="jxr_comment">// the juddi object into the appropriate xml format (we </em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a>                         <em class="jxr_comment">// only support UDDI v2.0 at this time).  Attach the</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a>                         <em class="jxr_comment">// results to the body of the SOAP response.</em>
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                         <strong class="jxr_keyword">if</strong> (result != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L189" href="#L189">189</a>                                 JAXBMarshaller.marshallToElement(result, <span class="jxr_string">"org.uddi.api_v3"</span>, element);
<a class="jxr_linenumber" name="L190" href="#L190">190</a>        <em class="jxr_comment">// Grab a reference to the 'temp' element's</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a>                                 <em class="jxr_comment">// only child here (this has the effect of</em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a>                                 <em class="jxr_comment">// discarding the temp element) and append </em>
<a class="jxr_linenumber" name="L193" href="#L193">193</a>                                 <em class="jxr_comment">// this child to the soap response body</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a>                                 document.appendChild(element.getFirstChild());
<a class="jxr_linenumber" name="L195" href="#L195">195</a>                         }
<a class="jxr_linenumber" name="L196" href="#L196">196</a>                         response = document;
<a class="jxr_linenumber" name="L197" href="#L197">197</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L198" href="#L198">198</a>                         DispositionReport dr = DispositionReportFaultMessage.getDispositionReport(e);
<a class="jxr_linenumber" name="L199" href="#L199">199</a>                         <strong class="jxr_keyword">if</strong> (dr != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L200" href="#L200">200</a>                                 JAXBMarshaller.marshallToElement(dr, <span class="jxr_string">"org.uddi.api_v3"</span>, element);
<a class="jxr_linenumber" name="L201" href="#L201">201</a>                                 document.appendChild(element.getFirstChild());
<a class="jxr_linenumber" name="L202" href="#L202">202</a>                                 response = document;
<a class="jxr_linenumber" name="L203" href="#L203">203</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L204" href="#L204">204</a>                                 <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="L205" href="#L205">205</a>                         }
<a class="jxr_linenumber" name="L206" href="#L206">206</a>                         <em class="jxr_comment">//log.error(e.getMessage(),e);</em>
<a class="jxr_linenumber" name="L207" href="#L207">207</a>                 }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>                 <strong class="jxr_keyword">return</strong> response;
<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>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_javadoccomment">         *</em>
<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         <strong class="jxr_keyword">private</strong> DocumentBuilder getDocumentBuilder() {
<a class="jxr_linenumber" name="L215" href="#L215">215</a>                 <strong class="jxr_keyword">if</strong> (docBuilder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L216" href="#L216">216</a>                         docBuilder = createDocumentBuilder();
<a class="jxr_linenumber" name="L217" href="#L217">217</a>                 }
<a class="jxr_linenumber" name="L218" href="#L218">218</a>                 <strong class="jxr_keyword">return</strong> docBuilder;
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         }
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">         *</em>
<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> DocumentBuilder createDocumentBuilder() {
<a class="jxr_linenumber" name="L225" href="#L225">225</a>                 <strong class="jxr_keyword">if</strong> (docBuilder != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L226" href="#L226">226</a>                         <strong class="jxr_keyword">return</strong> docBuilder;
<a class="jxr_linenumber" name="L227" href="#L227">227</a>                 }
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 
<a class="jxr_linenumber" name="L229" href="#L229">229</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L230" href="#L230">230</a>                         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
<a class="jxr_linenumber" name="L231" href="#L231">231</a>                         factory.setFeature(<span class="jxr_string">"http://apache.org/xml/features/disallow-doctype-decl"</span>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L232" href="#L232">232</a>                         factory.setNamespaceAware(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L233" href="#L233">233</a>                         <em class="jxr_comment">//factory.setValidating(true);</em>
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a>                         docBuilder = factory.newDocumentBuilder();
<a class="jxr_linenumber" name="L236" href="#L236">236</a>                 } <strong class="jxr_keyword">catch</strong> (ParserConfigurationException pcex) {
<a class="jxr_linenumber" name="L237" href="#L237">237</a>                         pcex.printStackTrace();
<a class="jxr_linenumber" name="L238" href="#L238">238</a>                 }
<a class="jxr_linenumber" name="L239" href="#L239">239</a> 
<a class="jxr_linenumber" name="L240" href="#L240">240</a>                 <strong class="jxr_keyword">return</strong> docBuilder;
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         }
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         <strong class="jxr_keyword">public</strong> String getOperation() {
<a class="jxr_linenumber" name="L244" href="#L244">244</a>                 <strong class="jxr_keyword">return</strong> operation;
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         }
<a class="jxr_linenumber" name="L246" href="#L246">246</a> 
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOperation(String operation) {
<a class="jxr_linenumber" name="L248" href="#L248">248</a>                 <strong class="jxr_keyword">this</strong>.operation = operation;
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         }
<a class="jxr_linenumber" name="L250" href="#L250">250</a> 
<a class="jxr_linenumber" name="L251" href="#L251">251</a>         <strong class="jxr_keyword">public</strong> Remote getPortType() {
<a class="jxr_linenumber" name="L252" href="#L252">252</a>                 <strong class="jxr_keyword">return</strong> portType;
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         }
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPortType(Remote portType) {
<a class="jxr_linenumber" name="L256" href="#L256">256</a>                 <strong class="jxr_keyword">this</strong>.portType = portType;
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         }
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         <strong class="jxr_keyword">public</strong> String getMethodName() {
<a class="jxr_linenumber" name="L260" href="#L260">260</a>                 <strong class="jxr_keyword">return</strong> methodName;
<a class="jxr_linenumber" name="L261" href="#L261">261</a>         }
<a class="jxr_linenumber" name="L262" href="#L262">262</a> 
<a class="jxr_linenumber" name="L263" href="#L263">263</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMethodName(String methodName) {
<a class="jxr_linenumber" name="L264" href="#L264">264</a>                 <strong class="jxr_keyword">this</strong>.methodName = methodName;
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         }
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         <strong class="jxr_keyword">public</strong> Class&lt;?&gt; getOperationClass() {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>                 <strong class="jxr_keyword">return</strong> operationClass;
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         }
<a class="jxr_linenumber" name="L270" href="#L270">270</a> 
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOperationClass(Class&lt;?&gt; operationClass) {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>                 <strong class="jxr_keyword">this</strong>.operationClass = operationClass;
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         }
<a class="jxr_linenumber" name="L274" href="#L274">274</a> 
<a class="jxr_linenumber" name="L275" href="#L275">275</a>         <strong class="jxr_keyword">public</strong> String getVersion() {
<a class="jxr_linenumber" name="L276" href="#L276">276</a>                 <strong class="jxr_keyword">return</strong> version;
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         }
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setVersion(String version) {
<a class="jxr_linenumber" name="L280" href="#L280">280</a>                 <strong class="jxr_keyword">this</strong>.version = version;
<a class="jxr_linenumber" name="L281" href="#L281">281</a>         }
<a class="jxr_linenumber" name="L282" href="#L282">282</a> 
<a class="jxr_linenumber" name="L283" href="#L283">283</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>
