1 package org.andromda.cartridges.webservice.metafacades;
2
3 import org.andromda.metafacades.uml.UMLProfile;
4 import org.apache.commons.lang.StringUtils;
5
6
7 /***
8 * MetafacadeLogic implementation for org.andromda.cartridges.webservice.metafacades.WebServiceOperation.
9 *
10 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation
11 */
12 public class WebServiceOperationLogicImpl
13 extends WebServiceOperationLogic
14 {
15 public WebServiceOperationLogicImpl(
16 Object metaObject,
17 String context)
18 {
19 super(metaObject, context);
20 }
21
22 /***
23 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#isExposed()
24 */
25 protected boolean handleIsExposed()
26 {
27 return this.getOwner().hasStereotype(UMLProfile.STEREOTYPE_WEBSERVICE) ||
28 this.hasStereotype(UMLProfile.STEREOTYPE_WEBSERVICE_OPERATION);
29 }
30
31 /***
32 * The prefix given to the test implementation operation names.
33 */
34 private static final String TEST_IMPLEMENTATION_OPERATION_NAME_PREFIX =
35 "testImplementationOperationNamePrefix";
36
37 /***
38 * Gets the test implementation operation name prefix.
39 */
40 private String getTestImplementationOperationNamePrefix()
41 {
42 return String.valueOf(
43 this.getConfiguredProperty(TEST_IMPLEMENTATION_OPERATION_NAME_PREFIX));
44 }
45
46 /***
47 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestImplementationName()
48 */
49 protected String handleGetTestImplementationName()
50 {
51 return this.getTestImplementationOperationNamePrefix() +
52 StringUtils.capitalize(this.getTestName());
53 }
54
55 /***
56 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestImplementationCall()
57 */
58 protected String handleGetTestImplementationCall()
59 {
60 return "this." + this.getTestImplementationSignature();
61 }
62
63 /***
64 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestImplementationSignature()
65 */
66 protected String handleGetTestImplementationSignature()
67 {
68 return this.getTestImplementationOperationNamePrefix() +
69 StringUtils.capitalize(this.getTestSignature());
70 }
71
72 /***
73 * The prefix given to the junit test operations.
74 */
75 private static final String TEST_NAME_PREFIX = "test";
76
77 /***
78 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestName()
79 */
80 protected String handleGetTestName()
81 {
82 return TEST_NAME_PREFIX + StringUtils.capitalize(this.getName());
83 }
84
85 /***
86 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestCall()
87 */
88 protected String handleGetTestCall()
89 {
90 return "this." + this.getSignature();
91 }
92
93 /***
94 * @see org.andromda.cartridges.webservice.metafacades.WebServiceOperation#getTestSignature()
95 */
96 protected String handleGetTestSignature()
97 {
98 return this.getTestName() + "()";
99 }
100 }