1 57 58 package org.apache.wsif.wsdl.extensions.jms; 59 60 import java.io.Serializable ; 61 import java.util.Iterator ; 62 63 import javax.wsdl.Definition; 64 import javax.wsdl.WSDLException; 65 import javax.wsdl.extensions.ExtensibilityElement; 66 import javax.wsdl.extensions.ExtensionDeserializer; 67 import javax.wsdl.extensions.ExtensionRegistry; 68 import javax.wsdl.extensions.ExtensionSerializer; 69 import javax.xml.namespace.QName ; 70 71 import org.apache.wsif.logging.Trc; 72 import org.w3c.dom.Element ; 73 74 import com.ibm.wsdl.Constants; 75 import com.ibm.wsdl.util.xml.DOMUtils; 76 import com.ibm.wsdl.util.xml.QNameUtils; 77 78 83 public class JMSFaultIndicatorSerializer 84 implements ExtensionSerializer, ExtensionDeserializer, Serializable { 85 86 private static final long serialVersionUID = 1L; 87 88 JMSFaultPropertySerializer jmsFaultPropertySerializer; 89 90 94 public void marshall( 95 Class parentType, 96 QName elementType, 97 javax.wsdl.extensions.ExtensibilityElement extension, 98 java.io.PrintWriter pw, 99 javax.wsdl.Definition def, 100 javax.wsdl.extensions.ExtensionRegistry extReg) 101 throws javax.wsdl.WSDLException { 102 Trc.entry(parentType, elementType, extension, pw, def, extReg); 103 104 if (extension == null) { 105 Trc.exit(); 106 return; 107 } 108 109 JMSFaultIndicator jmsFaultIndicator = (JMSFaultIndicator) extension; 110 String tagName = 111 DOMUtils.getQualifiedValue( 112 JMSConstants.NS_URI_JMS, 113 "faultIndicator", 114 def); 115 pw.print(" <" + tagName); 116 117 120 if (jmsFaultIndicator.getType() != null) { 121 DOMUtils.printAttribute( 122 JMSConstants.ATTR_TYPE, 123 jmsFaultIndicator.getType(), 124 pw); 125 } 126 pw.println(">"); 127 128 Iterator i = jmsFaultIndicator.getJMSFaultProperties().iterator(); 130 131 while (i.hasNext()) { 132 JMSFaultProperty ee = (JMSFaultProperty) i.next(); 133 getJMSFaultPropertySerializer().marshall( 134 JMSFaultIndicator.class, 135 JMSConstants.Q_ELEM_JMS_FAULT_PROPERTY, 136 ee, 137 pw, 138 def, 139 extReg); 140 } 141 142 Boolean required = extension.getRequired(); 143 if (required != null) { 144 DOMUtils.printQualifiedAttribute( 145 Constants.Q_ATTR_REQUIRED, 146 required.toString(), 147 def, 148 pw); 149 } 150 151 pw.println("</" + tagName + ">"); 152 153 Trc.exit(); 154 } 155 156 159 public void registerSerializer(ExtensionRegistry registry) { 160 Trc.entry(this, registry); 161 162 registry.registerSerializer( 164 javax.wsdl.BindingFault.class, 165 JMSConstants.Q_ELEM_JMS_FAULT_INDICATOR, 166 this); 167 registry.registerDeserializer( 168 javax.wsdl.BindingFault.class, 169 JMSConstants.Q_ELEM_JMS_FAULT_INDICATOR, 170 this); 171 registry.mapExtensionTypes( 172 javax.wsdl.BindingFault.class, 173 JMSConstants.Q_ELEM_JMS_FAULT_INDICATOR, 174 JMSFaultIndicator.class); 175 176 Trc.exit(); 177 } 178 179 183 public ExtensibilityElement unmarshall( 184 Class parentType, 185 QName elementType, 186 Element el, 187 Definition def, 188 ExtensionRegistry extReg) 189 throws WSDLException { 190 Trc.entry(this, parentType, elementType, el, def, extReg); 191 192 JMSFaultIndicator jmsFaultIndicator = 193 (JMSFaultIndicator) extReg.createExtension(parentType, elementType); 194 195 String type = DOMUtils.getAttribute(el, JMSConstants.ATTR_TYPE); 196 if (type != null) { 197 jmsFaultIndicator.setType(type); 198 } 199 200 Element tempEl = DOMUtils.getFirstChildElement(el); 202 203 while (tempEl != null) { 204 if (QNameUtils 205 .matches(JMSConstants.Q_ELEM_JMS_FAULT_PROPERTY, tempEl)) { 206 207 jmsFaultIndicator.addJMSFaultProperty( 208 (JMSFaultProperty) getJMSFaultPropertySerializer() 209 .unmarshall( 210 JMSFaultIndicator.class, 211 JMSConstants.Q_ELEM_JMS_FAULT_PROPERTY, 212 tempEl, 213 def, 214 extReg)); 215 } 216 217 tempEl = DOMUtils.getNextSiblingElement(tempEl); 218 } 219 220 Trc.exit(jmsFaultIndicator); 221 return jmsFaultIndicator; 222 } 223 224 private JMSFaultPropertySerializer getJMSFaultPropertySerializer() { 225 if (jmsFaultPropertySerializer == null) 226 jmsFaultPropertySerializer = new JMSFaultPropertySerializer(); 227 return jmsFaultPropertySerializer; 228 } 229 } | Popular Tags |