src/share/jaxws_classes/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java

changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
equal deleted inserted replaced
366:8c0b6bccfe47 368:0989ad8c0860
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this 7 * published by the Free Software Foundation. Oracle designates this
64 import javax.xml.ws.WebServiceException; 64 import javax.xml.ws.WebServiceException;
65 import java.net.MalformedURLException; 65 import java.net.MalformedURLException;
66 import java.net.URL; 66 import java.net.URL;
67 67
68 import com.sun.xml.internal.ws.util.ServiceFinder; 68 import com.sun.xml.internal.ws.util.ServiceFinder;
69 import java.util.Locale;
69 70
70 /** 71 /**
71 * @author WS Development Team 72 * @author WS Development Team
72 * @author Jitendra Kotamraju 73 * @author Jitendra Kotamraju
73 */ 74 */
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);

mercurial