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