1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.support.editor.inspectors.wss;
14
15 import java.beans.PropertyChangeEvent;
16 import java.beans.PropertyChangeListener;
17 import java.util.Vector;
18
19 import com.eviware.soapui.impl.wsdl.WsdlRequest;
20 import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
21 import com.eviware.soapui.impl.wsdl.submit.WsdlMessageExchange;
22 import com.eviware.soapui.impl.wsdl.support.MessageExchangeModelItem;
23 import com.eviware.soapui.model.ModelItem;
24 import com.eviware.soapui.support.editor.Editor;
25 import com.eviware.soapui.support.editor.EditorInspector;
26 import com.eviware.soapui.support.editor.registry.RequestInspectorFactory;
27 import com.eviware.soapui.support.editor.registry.ResponseInspectorFactory;
28 import com.eviware.soapui.support.editor.xml.XmlInspector;
29
30 public class WssInspectorFactory implements RequestInspectorFactory, ResponseInspectorFactory
31 {
32 public static final String INSPECTOR_ID = "WSS";
33
34 public String getInspectorId()
35 {
36 return INSPECTOR_ID;
37 }
38
39 public EditorInspector<?> createRequestInspector( Editor<?> editor, ModelItem modelItem )
40 {
41 if( modelItem instanceof WsdlMockResponse )
42 {
43 return new WsdlMockRequestWssInspector( (WsdlMockResponse)modelItem );
44 }
45 else if( modelItem instanceof MessageExchangeModelItem )
46 {
47 return new RequestMessageExchangeWssInspector( (MessageExchangeModelItem)modelItem );
48 }
49
50 return null;
51 }
52
53 public EditorInspector<?> createResponseInspector( Editor<?> editor, ModelItem modelItem )
54 {
55 if( modelItem instanceof WsdlRequest )
56 {
57 return new WsdlResponseWssInspector( (WsdlRequest)modelItem ) ;
58 }
59 else if( modelItem instanceof MessageExchangeModelItem )
60 {
61 return new ResponseMessageExchangeWssInspector( (MessageExchangeModelItem)modelItem );
62 }
63
64 return null;
65 }
66
67 public class WsdlMockRequestWssInspector extends AbstractWssInspector implements XmlInspector, PropertyChangeListener
68 {
69 private final WsdlMockResponse response;
70
71 public WsdlMockRequestWssInspector( WsdlMockResponse response )
72 {
73 this.response = response;
74
75 response.addPropertyChangeListener( WsdlMockResponse.MOCKRESULT_PROPERTY, this );
76 }
77
78 @Override
79 public Vector<?> getWssResults()
80 {
81 return response.getMockResult() == null ? null : response.getMockResult().getRequestWssResult();
82 }
83
84 public void propertyChange( PropertyChangeEvent evt )
85 {
86 update();
87 }
88
89 @Override
90 public void release()
91 {
92 response.removePropertyChangeListener( WsdlMockResponse.MOCKRESULT_PROPERTY, this );
93 }
94 }
95
96 public class RequestMessageExchangeWssInspector extends AbstractWssInspector implements XmlInspector, PropertyChangeListener
97 {
98 private final MessageExchangeModelItem item;
99
100 public RequestMessageExchangeWssInspector( MessageExchangeModelItem item )
101 {
102 this.item = item;
103
104 item.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
105 }
106
107 @Override
108 public Vector<?> getWssResults()
109 {
110 return item.getMessageExchange() instanceof WsdlMessageExchange ?
111 ((WsdlMessageExchange)item.getMessageExchange()).getRequestWssResult() : null;
112 }
113
114 public void propertyChange( PropertyChangeEvent evt )
115 {
116 update();
117 }
118
119 @Override
120 public void release()
121 {
122 item.removePropertyChangeListener(MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
123 }
124 }
125
126 public class WsdlResponseWssInspector extends AbstractWssInspector implements XmlInspector, PropertyChangeListener
127 {
128 private final WsdlRequest response;
129
130 public WsdlResponseWssInspector( WsdlRequest response )
131 {
132 this.response = response;
133
134 response.addPropertyChangeListener( WsdlRequest.RESPONSE_PROPERTY, this );
135 }
136
137 @Override
138 public Vector<?> getWssResults()
139 {
140 return response.getResponse() == null ? null : response.getResponse().getWssResult();
141 }
142
143 public void propertyChange( PropertyChangeEvent evt )
144 {
145 update();
146 }
147
148 @Override
149 public void release()
150 {
151 response.removePropertyChangeListener( WsdlRequest.RESPONSE_PROPERTY, this );
152 }
153 }
154
155 public class ResponseMessageExchangeWssInspector extends AbstractWssInspector implements XmlInspector, PropertyChangeListener
156 {
157 private final MessageExchangeModelItem item;
158
159 public ResponseMessageExchangeWssInspector( MessageExchangeModelItem item )
160 {
161 this.item = item;
162
163 item.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
164 }
165
166 @Override
167 public Vector<?> getWssResults()
168 {
169 return item.getMessageExchange() instanceof WsdlMessageExchange ?
170 ((WsdlMessageExchange)item.getMessageExchange()).getResponseWssResult() : null;
171 }
172
173 public void propertyChange( PropertyChangeEvent evt )
174 {
175 update();
176 }
177
178 @Override
179 public void release()
180 {
181 item.removePropertyChangeListener(MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
182 }
183 }
184 }