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