01: package org.andromda.cartridges.webservice.metafacades;
02:
03: import org.andromda.metafacades.uml.ClassifierFacade;
04:
05: /**
06: * MetafacadeLogic implementation for org.andromda.cartridges.webservice.metafacades.WebServiceParameter.
07: *
08: * @see org.andromda.cartridges.webservice.metafacades.WebServiceParameter
09: */
10: public class WebServiceParameterLogicImpl extends
11: WebServiceParameterLogic {
12: // ---------------- constructor -------------------------------
13:
14: public WebServiceParameterLogicImpl(Object metaObject,
15: String context) {
16: super (metaObject, context);
17: }
18:
19: /**
20: * @see org.andromda.cartridges.webservice.metafacades.WebServiceParameter#isNillable()
21: */
22: protected boolean handleIsNillable() {
23: return !this .isRequired();
24: }
25:
26: /**
27: * @see org.andromda.cartridges.webservice.metafacades.WebServiceParameter#getTestTypeName()
28: */
29: protected String handleGetTestTypeName() {
30: String testTypeName = null;
31: final ClassifierFacade type = this .getType();
32: if (type instanceof WSDLType
33: || type instanceof WSDLEnumerationType) {
34: ClassifierFacade service = this .getOperation().getOwner();
35: if (service instanceof WebService) {
36: WebService webService = (WebService) service;
37: final String testPackageName = webService
38: .getTestPackageName();
39: if (type instanceof WSDLType) {
40: final WSDLType wsdlType = (WSDLType) type;
41: if (!webService.isRpcStyle()
42: && wsdlType.isArrayType()) {
43: testTypeName = testPackageName + '.'
44: + wsdlType.getWsdlArrayName();
45: } else if (!type.isDataType()) {
46: testTypeName = testPackageName + '.'
47: + wsdlType.getName();
48: }
49: } else {
50: final WSDLEnumerationType wsdlType = (WSDLEnumerationType) type;
51: if (!webService.isRpcStyle()
52: && wsdlType.isArrayType()) {
53: testTypeName = testPackageName + '.'
54: + wsdlType.getWsdlArrayName();
55: } else if (!type.isDataType()) {
56: testTypeName = testPackageName + '.'
57: + wsdlType.getName();
58: }
59: }
60: }
61: if (testTypeName == null) {
62: testTypeName = this.getType().getFullyQualifiedName();
63: }
64: }
65: return testTypeName;
66: }
67: }
|