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