View Javadoc

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