1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.support.editor.inspectors.amfheader;
14
15 import com.eviware.soapui.impl.wsdl.panels.teststeps.amf.AMFRequest;
16 import com.eviware.soapui.impl.wsdl.support.MessageExchangeModelItem;
17 import com.eviware.soapui.impl.wsdl.teststeps.AMFRequestTestStep;
18 import com.eviware.soapui.impl.wsdl.teststeps.AMFTestStepResult;
19 import com.eviware.soapui.model.ModelItem;
20 import com.eviware.soapui.support.editor.Editor;
21 import com.eviware.soapui.support.editor.EditorInspector;
22 import com.eviware.soapui.support.editor.inspectors.amfheader.AMFHeadersInspectorModel.AbstractHeadersModel;
23 import com.eviware.soapui.support.editor.registry.RequestInspectorFactory;
24 import com.eviware.soapui.support.editor.registry.ResponseInspectorFactory;
25 import com.eviware.soapui.support.types.StringToStringMap;
26
27 public class AMFHeadersInspectorFactory implements RequestInspectorFactory, ResponseInspectorFactory
28 {
29 public static final String INSPECTOR_ID = "AMF Headers";
30
31 public String getInspectorId()
32 {
33 return INSPECTOR_ID;
34 }
35
36 public EditorInspector<?> createRequestInspector( Editor<?> editor, ModelItem modelItem )
37 {
38 if( modelItem instanceof AMFRequestTestStep )
39 {
40 AMFHeadersInspector inspector = new AMFHeadersInspector( new AMFRequestHeadersModel(
41 ( AMFRequestTestStep )modelItem ) );
42 inspector.setEnabled( true );
43 return inspector;
44 }
45 else if( modelItem instanceof MessageExchangeModelItem )
46 {
47 if( ( ( MessageExchangeModelItem )modelItem ).getMessageExchange() instanceof AMFTestStepResult )
48 {
49 AMFHeadersInspector inspector = new AMFHeadersInspector( new MessageExchangeRequestAMFHeadersModel(
50 ( MessageExchangeModelItem )modelItem ) );
51 inspector.setEnabled( true );
52 return inspector;
53 }
54 }
55 return null;
56 }
57
58 public EditorInspector<?> createResponseInspector( Editor<?> editor, ModelItem modelItem )
59 {
60
61 if( modelItem instanceof AMFRequestTestStep )
62 {
63 AMFHeadersInspector inspector = new AMFHeadersInspector( new AMFResponseHeadersModel(
64 ( AMFRequestTestStep )modelItem ) );
65 inspector.setEnabled( true );
66 return inspector;
67 }
68 else if( modelItem instanceof MessageExchangeModelItem )
69 {
70 if( ( ( MessageExchangeModelItem )modelItem ).getMessageExchange() instanceof AMFTestStepResult )
71 {
72 AMFHeadersInspector inspector = new AMFHeadersInspector( new MessageExchangeResponseAMFHeadersModel(
73 ( MessageExchangeModelItem )modelItem ) );
74 inspector.setEnabled( true );
75 return inspector;
76 }
77 }
78 return null;
79 }
80
81 private class MessageExchangeRequestAMFHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
82 {
83 public MessageExchangeRequestAMFHeadersModel( MessageExchangeModelItem request )
84 {
85 super( true, request, MessageExchangeModelItem.MESSAGE_EXCHANGE );
86 }
87
88 public StringToStringMap getHeaders()
89 {
90 if( getModelItem().getMessageExchange() instanceof AMFTestStepResult )
91 {
92 AMFTestStepResult messageExchange = ( AMFTestStepResult )getModelItem().getMessageExchange();
93 return ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAmfHeaders();
94 }
95 return new StringToStringMap();
96 }
97 }
98
99 private class MessageExchangeResponseAMFHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
100 {
101 public MessageExchangeResponseAMFHeadersModel( MessageExchangeModelItem messageExchange )
102 {
103 super( true, messageExchange, MessageExchangeModelItem.MESSAGE_EXCHANGE );
104 }
105
106 public StringToStringMap getHeaders()
107 {
108 if( getModelItem().getMessageExchange() instanceof AMFTestStepResult )
109 {
110 AMFTestStepResult messageExchange = ( AMFTestStepResult )getModelItem().getMessageExchange();
111 if( ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAMFRequest().getResponse() != null )
112 {
113 return ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAMFRequest().getResponse()
114 .getResponseAMFHeaders();
115 }
116 else
117 return new StringToStringMap();
118
119 }
120 return new StringToStringMap();
121 }
122 }
123
124 private class AMFRequestHeadersModel extends AbstractHeadersModel<AMFRequestTestStep>
125 {
126 public AMFRequestHeadersModel( AMFRequestTestStep testStep )
127 {
128 super( false, testStep, AMFRequestTestStep.AMF_HEADERS_PROPERTY );
129 }
130
131 public StringToStringMap getHeaders()
132 {
133 return getModelItem().getAmfHeaders();
134 }
135
136 public void setHeaders( StringToStringMap headers )
137 {
138 getModelItem().setAmfHeaders( headers );
139 }
140
141 @Override
142 public void release()
143 {
144 getModelItem().removePropertyChangeListener( AMFRequestTestStep.AMF_HEADERS_PROPERTY, this );
145 super.release();
146 }
147
148 }
149
150 private class AMFResponseHeadersModel extends AbstractHeadersModel<AMFRequestTestStep>
151 {
152 AMFRequest request;
153
154 public AMFResponseHeadersModel( AMFRequestTestStep testStep )
155 {
156 super( true, testStep, AMFRequestTestStep.AMF_HEADERS_PROPERTY );
157 this.request = testStep.getAMFRequest();
158 this.request.addPropertyChangeListener( AMFRequest.AMF_RESPONSE_PROPERTY, this );
159 }
160
161 public StringToStringMap getHeaders()
162 {
163 if( getModelItem().getAMFRequest().getResponse() != null )
164 {
165 return getModelItem().getAMFRequest().getResponse().getResponseAMFHeaders();
166 }
167 else
168 {
169 return new StringToStringMap();
170 }
171 }
172
173 @Override
174 public void release()
175 {
176 request.removePropertyChangeListener( AMFRequest.AMF_RESPONSE_PROPERTY, this );
177 super.release();
178 }
179
180 }
181 }