1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.model.support;
14
15 import com.eviware.soapui.model.testsuite.TestStep;
16 import com.eviware.soapui.model.testsuite.TestStepProperty;
17
18 /****
19 * Default implementation of TestStepProperty interface
20 *
21 * @author Ole.Matzura
22 */
23
24 public class DefaultTestStepProperty implements TestStepProperty
25 {
26 private final String name;
27 private boolean isReadOnly;
28 private String description;
29 private PropertyHandler handler;
30 private final TestStep testStep;
31
32 public DefaultTestStepProperty(String name, boolean isReadOnly, PropertyHandler handler, TestStep testStep )
33 {
34 this.name = name;
35 this.isReadOnly = isReadOnly;
36 this.handler = handler;
37 this.testStep = testStep;
38 }
39
40 public DefaultTestStepProperty(String name, TestStep testStep)
41 {
42 this( name, false, new SimplePropertyHandler(), testStep );
43 }
44
45 public DefaultTestStepProperty(String name, boolean isReadOnly, TestStep testStep)
46 {
47 this( name, isReadOnly, new SimplePropertyHandler(), testStep );
48 }
49
50 public String getDescription()
51 {
52 return description;
53 }
54
55 public void setDescription(String description)
56 {
57 this.description = description;
58 }
59
60 public String getName()
61 {
62 return name;
63 }
64
65 public void setIsReadOnly( boolean isReadOnly )
66 {
67 this.isReadOnly = isReadOnly;
68 }
69
70 public boolean isReadOnly()
71 {
72 return isReadOnly;
73 }
74
75 public void setPropertyHandler( PropertyHandler handler )
76 {
77 this.handler = handler;
78 }
79
80 public String getValue()
81 {
82 return handler == null ? null : handler.getValue();
83 }
84
85 public void setValue( String value )
86 {
87 if( isReadOnly() )
88 throw new RuntimeException( "Trying to set read-only property [" + getName() + "]" );
89
90 if( handler != null )
91 {
92 handler.setValue( value );
93 }
94 }
95
96 public TestStep getTestStep()
97 {
98 return testStep;
99 }
100
101 /***
102 * Handler for providing and setting property values
103 *
104 * @author Ole.Matzura
105 */
106
107 public interface PropertyHandler
108 {
109 public String getValue();
110
111 public void setValue( String value );
112 }
113
114 /***
115 * Empty implementation of PropertyHandler interface
116 *
117 * @author Ole.Matzura
118 */
119
120 public static class PropertyHandlerAdapter implements PropertyHandler
121 {
122 public String getValue()
123 {
124 return null;
125 }
126
127 public void setValue(String value)
128 {
129 }
130 }
131
132 /***
133 * Simple implementation of PropertyHandler interface
134 *
135 * @author Ole.Matzura
136 */
137
138 public static class SimplePropertyHandler implements PropertyHandler
139 {
140 private String value;
141
142 public String getValue()
143 {
144 return value;
145 }
146
147 public void setValue(String value)
148 {
149 this.value = value;
150 }}
151 }