1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.panels.request.components.editor.inspectors.httpheaders;
14
15
16 import com.eviware.soapui.impl.wsdl.WsdlRequest;
17 import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
18 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.XmlEditor;
19 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.XmlInspector;
20 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.inspectors.httpheaders.HttpHeadersInspectorModel.AbstractHeadersModel;
21 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.inspectors.registry.RequestInspectorFactory;
22 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.inspectors.registry.ResponseInspectorFactory;
23 import com.eviware.soapui.impl.wsdl.support.MessageExchangeModelItem;
24 import com.eviware.soapui.model.ModelItem;
25 import com.eviware.soapui.model.iface.MessageExchange;
26 import com.eviware.soapui.support.types.StringToStringMap;
27
28 public class HttpHeadersInspectorFactory implements RequestInspectorFactory, ResponseInspectorFactory
29 {
30 public static final String INSPECTOR_ID = "HTTP Headers";
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 WsdlRequest )
40 return new HttpHeadersInspector( new WsdlRequestHeadersModel( (WsdlRequest)modelItem ) );
41 else if( modelItem instanceof WsdlMockResponse )
42 return new HttpHeadersInspector( new WsdlMockResponseRequestHeadersModel( ( WsdlMockResponse ) modelItem ) );
43 else if( modelItem instanceof MessageExchangeModelItem )
44 return new HttpHeadersInspector( new WsdlMessageExchangeRequestHeadersModel( (MessageExchangeModelItem)modelItem ) );
45
46 return null;
47 }
48
49 public XmlInspector createResponseInspector( XmlEditor editor, ModelItem modelItem )
50 {
51 if( modelItem instanceof WsdlRequest )
52 return new HttpHeadersInspector( new WsdlRequestResponseHeadersModel( ( WsdlRequest ) modelItem ) );
53 else if( modelItem instanceof WsdlMockResponse )
54 return new HttpHeadersInspector( new WsdlMockResponseHeadersModel( ( WsdlMockResponse ) modelItem ) );
55 else if( modelItem instanceof MessageExchangeModelItem )
56 return new HttpHeadersInspector( new WsdlMessageExchangeResponseHeadersModel( (MessageExchangeModelItem)modelItem ) );
57
58 return null;
59 }
60
61 private class WsdlMessageExchangeRequestHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
62 {
63 public WsdlMessageExchangeRequestHeadersModel( MessageExchangeModelItem request )
64 {
65 super( true, request, MessageExchangeModelItem.MESSAGE_EXCHANGE );
66 }
67
68 public StringToStringMap getHeaders()
69 {
70 MessageExchange messageExchange = getModelItem().getMessageExchange();
71 return messageExchange == null ? StringToStringMap.EMPTY_MAP : messageExchange.getRequestHeaders();
72 }
73 }
74
75 private class WsdlMessageExchangeResponseHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
76 {
77 public WsdlMessageExchangeResponseHeadersModel( MessageExchangeModelItem response )
78 {
79 super( true, response, MessageExchangeModelItem.MESSAGE_EXCHANGE );
80 }
81
82 public StringToStringMap getHeaders()
83 {
84 MessageExchange messageExchange = getModelItem().getMessageExchange();
85 return messageExchange == null ? StringToStringMap.EMPTY_MAP : messageExchange.getResponseHeaders();
86 }
87 }
88
89 private class WsdlRequestHeadersModel extends AbstractHeadersModel<WsdlRequest>
90 {
91 public WsdlRequestHeadersModel( WsdlRequest request )
92 {
93 super( false, request, WsdlRequest.REQUEST_HEADERS_PROPERTY );
94 }
95
96 public StringToStringMap getHeaders()
97 {
98 return getModelItem().getRequestHeaders();
99 }
100
101 public void setHeaders( StringToStringMap headers )
102 {
103 getModelItem().setRequestHeaders( headers );
104 }
105 }
106
107 private class WsdlMockResponseHeadersModel extends AbstractHeadersModel<WsdlMockResponse>
108 {
109 public WsdlMockResponseHeadersModel( WsdlMockResponse request )
110 {
111 super( false, request, WsdlMockResponse.HEADERS_PROPERTY );
112 }
113
114 public StringToStringMap getHeaders()
115 {
116 return getModelItem().getResponseHeaders();
117 }
118
119 public void setHeaders( StringToStringMap headers )
120 {
121 getModelItem().setResponseHeaders( headers );
122 }
123 }
124
125 private class WsdlRequestResponseHeadersModel extends AbstractHeadersModel<WsdlRequest>
126 {
127 public WsdlRequestResponseHeadersModel( WsdlRequest request )
128 {
129 super( true, request, WsdlRequest.RESPONSE_PROPERTY );
130 }
131
132 public StringToStringMap getHeaders()
133 {
134 WsdlRequest request = getModelItem();
135 return request.getResponse() == null ? new StringToStringMap() : request.getResponse().getResponseHeaders();
136 }
137 }
138
139 private class WsdlMockResponseRequestHeadersModel extends AbstractHeadersModel<WsdlMockResponse>
140 {
141 public WsdlMockResponseRequestHeadersModel( WsdlMockResponse request )
142 {
143 super( true, request, WsdlMockResponse.MOCKRESULT_PROPERTY );
144 }
145
146 public StringToStringMap getHeaders()
147 {
148 WsdlMockResponse request = getModelItem();
149 return request.getMockResult() == null ? new StringToStringMap() : request.getMockResult().getMockRequest().getRequestHeaders();
150 }
151 }
152 }