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,
68 PropertyChangeListener
69 {
70 private final WsdlMockResponse response;
71
72 public WsdlMockRequestWssInspector( WsdlMockResponse response )
73 {
74 this.response = response;
75
76 response.addPropertyChangeListener( WsdlMockResponse.MOCKRESULT_PROPERTY, this );
77 }
78
79 @Override
80 public Vector<?> getWssResults()
81 {
82 return response.getMockResult() == null ? null : response.getMockResult().getRequestWssResult();
83 }
84
85 public void propertyChange( PropertyChangeEvent evt )
86 {
87 update();
88 }
89
90 @Override
91 public void release()
92 {
93 response.removePropertyChangeListener( WsdlMockResponse.MOCKRESULT_PROPERTY, this );
94 }
95 }
96
97 public class RequestMessageExchangeWssInspector extends AbstractWssInspector implements XmlInspector,
98 PropertyChangeListener
99 {
100 private final MessageExchangeModelItem item;
101
102 public RequestMessageExchangeWssInspector( MessageExchangeModelItem item )
103 {
104 this.item = item;
105
106 item.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
107 }
108
109 @Override
110 public Vector<?> getWssResults()
111 {
112 return item.getMessageExchange() instanceof WsdlMessageExchange ? ( ( WsdlMessageExchange )item
113 .getMessageExchange() ).getRequestWssResult() : null;
114 }
115
116 public void propertyChange( PropertyChangeEvent evt )
117 {
118 update();
119 }
120
121 @Override
122 public void release()
123 {
124 item.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
125 }
126 }
127
128 public class WsdlResponseWssInspector extends AbstractWssInspector implements XmlInspector, PropertyChangeListener
129 {
130 private final WsdlRequest response;
131
132 public WsdlResponseWssInspector( WsdlRequest response )
133 {
134 this.response = response;
135
136 response.addPropertyChangeListener( WsdlRequest.RESPONSE_PROPERTY, this );
137 }
138
139 @Override
140 public Vector<?> getWssResults()
141 {
142 return response.getResponse() == null ? null : response.getResponse().getWssResult();
143 }
144
145 public void propertyChange( PropertyChangeEvent evt )
146 {
147 update();
148 }
149
150 @Override
151 public void release()
152 {
153 response.removePropertyChangeListener( WsdlRequest.RESPONSE_PROPERTY, this );
154 }
155 }
156
157 public class ResponseMessageExchangeWssInspector extends AbstractWssInspector implements XmlInspector,
158 PropertyChangeListener
159 {
160 private final MessageExchangeModelItem item;
161
162 public ResponseMessageExchangeWssInspector( MessageExchangeModelItem item )
163 {
164 this.item = item;
165
166 item.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
167 }
168
169 @Override
170 public Vector<?> getWssResults()
171 {
172 return item.getMessageExchange() instanceof WsdlMessageExchange ? ( ( WsdlMessageExchange )item
173 .getMessageExchange() ).getResponseWssResult() : null;
174 }
175
176 public void propertyChange( PropertyChangeEvent evt )
177 {
178 update();
179 }
180
181 @Override
182 public void release()
183 {
184 item.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
185 }
186 }
187 }