98 receiver.error(service.getLocator(), GeneratorMessages.GENERATOR_SERVICE_CLASS_ALREADY_EXIST(className, service.getName())); |
99 receiver.error(service.getLocator(), GeneratorMessages.GENERATOR_SERVICE_CLASS_ALREADY_EXIST(className, service.getName())); |
99 return; |
100 return; |
100 } |
101 } |
101 |
102 |
102 cls._extends(javax.xml.ws.Service.class); |
103 cls._extends(javax.xml.ws.Service.class); |
103 String serviceFieldName = BindingHelper.mangleNameToClassName(service.getName().getLocalPart()).toUpperCase(); |
104 String serviceFieldName = BindingHelper.mangleNameToClassName(service.getName().getLocalPart()).toUpperCase(Locale.ENGLISH); |
104 String wsdlLocationName = serviceFieldName + "_WSDL_LOCATION"; |
105 String wsdlLocationName = serviceFieldName + "_WSDL_LOCATION"; |
105 JFieldVar urlField = cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, URL.class, wsdlLocationName); |
106 JFieldVar urlField = cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, URL.class, wsdlLocationName); |
106 |
107 |
107 JFieldVar exField = cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, WebServiceException.class, serviceFieldName+"_EXCEPTION"); |
108 JFieldVar exField = cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, WebServiceException.class, serviceFieldName+"_EXCEPTION"); |
108 |
109 |
217 (QName) port.getProperty( |
218 (QName) port.getProperty( |
218 ModelProperties.PROPERTY_WSDL_PORT_TYPE_NAME); |
219 ModelProperties.PROPERTY_WSDL_PORT_TYPE_NAME); |
219 Locator loc = null; |
220 Locator loc = null; |
220 if (portTypeName != null) { |
221 if (portTypeName != null) { |
221 PortType pt = port.portTypes.get(portTypeName); |
222 PortType pt = port.portTypes.get(portTypeName); |
222 if (pt != null) |
223 if (pt != null) { |
223 loc = pt.getLocator(); |
224 loc = pt.getLocator(); |
|
225 } |
224 } |
226 } |
225 receiver.error(loc, GeneratorMessages.GENERATOR_SEI_CLASS_ALREADY_EXIST(port.getJavaInterface().getName(), portTypeName)); |
227 receiver.error(loc, GeneratorMessages.GENERATOR_SEI_CLASS_ALREADY_EXIST(port.getJavaInterface().getName(), portTypeName)); |
226 return; |
228 return; |
227 } |
229 } |
228 |
230 |
229 //write getXyzPort() |
231 //write getXyzPort() |
230 writeDefaultGetPort(port, retType, cls); |
232 writeDefaultGetPort(port, retType, cls); |
231 |
233 |
232 //write getXyzPort(WebServicesFeature...) |
234 //write getXyzPort(WebServicesFeature...) |
233 if (options.target.isLaterThan(Options.Target.V2_1)) |
235 if (options.target.isLaterThan(Options.Target.V2_1)) { |
234 writeGetPort(port, retType, cls); |
236 writeGetPort(port, retType, cls); |
|
237 } |
235 } |
238 } |
236 |
239 |
237 writeGetWsdlLocation(cm.ref(URL.class), cls, urlField, exField); |
240 writeGetWsdlLocation(cm.ref(URL.class), cls, urlField, exField); |
238 } |
241 } |
239 |
242 |
240 private void writeGetPort(Port port, JType retType, JDefinedClass cls) { |
243 private void writeGetPort(Port port, JType retType, JDefinedClass cls) { |
241 JMethod m = cls.method(JMod.PUBLIC, retType, port.getPortGetter()); |
244 JMethod m = cls.method(JMod.PUBLIC, retType, port.getPortGetter()); |
242 JDocComment methodDoc = m.javadoc(); |
245 JDocComment methodDoc = m.javadoc(); |
243 if (port.getJavaDoc() != null) |
246 if (port.getJavaDoc() != null) { |
244 methodDoc.add(port.getJavaDoc()); |
247 methodDoc.add(port.getJavaDoc()); |
|
248 } |
245 JCommentPart ret = methodDoc.addReturn(); |
249 JCommentPart ret = methodDoc.addReturn(); |
246 JCommentPart paramDoc = methodDoc.addParam("features"); |
250 JCommentPart paramDoc = methodDoc.addParam("features"); |
247 paramDoc.append("A list of "); |
251 paramDoc.append("A list of "); |
248 paramDoc.append("{@link " + WebServiceFeature.class.getName() + "}"); |
252 paramDoc.append("{@link " + WebServiceFeature.class.getName() + "}"); |
249 paramDoc.append("to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values."); |
253 paramDoc.append("to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values."); |
250 ret.add("returns " + retType.name()); |
254 ret.add("returns " + retType.name()); |
251 m.varParam(WebServiceFeature.class, "features"); |
255 m.varParam(WebServiceFeature.class, "features"); |
252 JBlock body = m.body(); |
256 JBlock body = m.body(); |
253 StringBuffer statement = new StringBuffer("return "); |
257 StringBuilder statement = new StringBuilder("return "); |
254 statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); |
258 statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); |
255 statement.append(retType.name()); |
259 statement.append(retType.name()); |
256 statement.append(".class, features);"); |
260 statement.append(".class, features);"); |
257 body.directStatement(statement.toString()); |
261 body.directStatement(statement.toString()); |
258 writeWebEndpoint(port, m); |
262 writeWebEndpoint(port, m); |
387 |
391 |
388 private void writeDefaultGetPort(Port port, JType retType, JDefinedClass cls) { |
392 private void writeDefaultGetPort(Port port, JType retType, JDefinedClass cls) { |
389 String portGetter = port.getPortGetter(); |
393 String portGetter = port.getPortGetter(); |
390 JMethod m = cls.method(JMod.PUBLIC, retType, portGetter); |
394 JMethod m = cls.method(JMod.PUBLIC, retType, portGetter); |
391 JDocComment methodDoc = m.javadoc(); |
395 JDocComment methodDoc = m.javadoc(); |
392 if (port.getJavaDoc() != null) |
396 if (port.getJavaDoc() != null) { |
393 methodDoc.add(port.getJavaDoc()); |
397 methodDoc.add(port.getJavaDoc()); |
|
398 } |
394 JCommentPart ret = methodDoc.addReturn(); |
399 JCommentPart ret = methodDoc.addReturn(); |
395 ret.add("returns " + retType.name()); |
400 ret.add("returns " + retType.name()); |
396 JBlock body = m.body(); |
401 JBlock body = m.body(); |
397 StringBuffer statement = new StringBuffer("return "); |
402 StringBuilder statement = new StringBuilder("return "); |
398 statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); |
403 statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); |
399 statement.append(retType.name()); |
404 statement.append(retType.name()); |
400 statement.append(".class);"); |
405 statement.append(".class);"); |
401 body.directStatement(statement.toString()); |
406 body.directStatement(statement.toString()); |
402 writeWebEndpoint(port, m); |
407 writeWebEndpoint(port, m); |