1 57 58 package org.apache.wsif.wsdl.extensions.jms; 59 60 import java.io.Serializable ; 61 62 import javax.wsdl.Definition; 63 import javax.wsdl.WSDLException; 64 import javax.wsdl.extensions.ExtensibilityElement; 65 import javax.wsdl.extensions.ExtensionDeserializer; 66 import javax.wsdl.extensions.ExtensionRegistry; 67 import javax.wsdl.extensions.ExtensionSerializer; 68 import javax.xml.namespace.QName ; 69 70 import org.apache.wsif.logging.Trc; 71 import org.w3c.dom.Element ; 72 73 import com.ibm.wsdl.Constants; 74 import com.ibm.wsdl.util.xml.DOMUtils; 75 76 83 public class JMSPropertyValueSerializer 84 implements ExtensionSerializer, ExtensionDeserializer, Serializable { 85 86 private static final long serialVersionUID = 1L; 87 88 91 public void marshall( 92 Class parentType, 93 QName elementType, 94 javax.wsdl.extensions.ExtensibilityElement extension, 95 java.io.PrintWriter pw, 96 javax.wsdl.Definition def, 97 javax.wsdl.extensions.ExtensionRegistry extReg) 98 throws javax.wsdl.WSDLException { 99 Trc.entry(this, parentType, elementType, extension, pw, def, extReg); 100 101 if (extension == null) { 102 Trc.exit(); 103 return; 104 } 105 106 JMSPropertyValue jmsPropertyValue = (JMSPropertyValue) extension; 107 String tagName = 108 DOMUtils.getQualifiedValue(JMSConstants.NS_URI_JMS, "propertyValue", def); 109 pw.print(" <" + tagName); 110 111 114 if (jmsPropertyValue.getName() != null) { 115 DOMUtils.printAttribute(JMSConstants.ATTR_NAME, jmsPropertyValue.getName(), pw); 116 } 117 118 if (jmsPropertyValue.getType() != null) { 119 DOMUtils.printQualifiedAttribute( 120 JMSConstants.ATTR_TYPE, 121 jmsPropertyValue.getType(), 122 def, 123 pw); 124 } 125 126 if (jmsPropertyValue.getValue() != null) { 127 DOMUtils.printAttribute( 128 JMSConstants.ATTR_VALUE, 129 jmsPropertyValue.getValue(), 130 pw); 131 } 132 133 Boolean required = extension.getRequired(); 134 if (required != null) { 135 DOMUtils.printQualifiedAttribute( 136 Constants.Q_ATTR_REQUIRED, 137 required.toString(), 138 def, 139 pw); 140 } 141 142 pw.println("/>"); 143 Trc.exit(); 144 } 145 146 149 public void registerSerializer(ExtensionRegistry registry) { 150 Trc.entry(this, registry); 151 152 registry.registerSerializer( 153 javax.wsdl.BindingInput.class, 154 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 155 this); 156 registry.registerDeserializer( 157 javax.wsdl.BindingInput.class, 158 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 159 this); 160 registry.mapExtensionTypes( 161 javax.wsdl.BindingInput.class, 162 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 163 JMSPropertyValue.class); 164 registry.registerSerializer( 165 JMSAddress.class, 166 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 167 this); 168 registry.registerDeserializer( 169 JMSAddress.class, 170 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 171 this); 172 registry.mapExtensionTypes( 173 JMSAddress.class, 174 JMSConstants.Q_ELEM_JMS_PROPERTY_VALUE, 175 JMSPropertyValue.class); 176 177 191 Trc.exit(); 192 } 193 194 197 public ExtensibilityElement unmarshall( 198 Class parentType, 199 QName elementType, 200 Element el, 201 Definition def, 202 ExtensionRegistry extReg) 203 throws WSDLException { 204 Trc.entry(this, parentType, elementType, el, def, extReg); 205 206 JMSPropertyValue jmsPropertyValue = 207 (JMSPropertyValue) extReg.createExtension(parentType, elementType); 208 209 String name = DOMUtils.getAttribute(el, JMSConstants.ATTR_NAME); 210 if (name != null) { 211 jmsPropertyValue.setName(name); 212 } 213 214 QName type = 215 DOMUtils.getQualifiedAttributeValue( 216 el, 217 JMSConstants.ATTR_TYPE, 218 JMSConstants.ELEM_PROPERTY_VALUE, 219 false); 220 if (type != null) { 221 jmsPropertyValue.setType(type); 222 } 223 224 String value = DOMUtils.getAttribute(el, JMSConstants.ATTR_VALUE); 225 if (value != null) { 226 jmsPropertyValue.setValue(value); 227 } 228 229 Trc.exit(jmsPropertyValue); 230 return jmsPropertyValue; 231 } 232 } | Popular Tags |