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