View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2007 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.soapui.impl.wsdl.teststeps;
14  
15  import java.util.Vector;
16  
17  import com.eviware.soapui.impl.wsdl.WsdlOperation;
18  import com.eviware.soapui.impl.wsdl.WsdlRequest;
19  import com.eviware.soapui.impl.wsdl.submit.WsdlMessageExchange;
20  import com.eviware.soapui.impl.wsdl.submit.transports.http.WsdlResponse;
21  import com.eviware.soapui.model.ModelItem;
22  import com.eviware.soapui.model.iface.Attachment;
23  import com.eviware.soapui.support.types.StringToStringMap;
24  
25  /***
26   * WsdlMessageExchange for a WsdlRequest and its response
27   *  
28   * @author ole.matzura
29   */
30  
31  public class WsdlResponseMessageExchange extends WsdlMessageExchange
32  {
33  	private final WsdlRequest request;
34  	private WsdlResponse response;
35  	private String requestContent;
36  
37  	public WsdlResponseMessageExchange( WsdlRequest request )
38  	{
39  		this.request = request;
40  		response = request.getResponse();
41  	}
42  	
43     public WsdlRequest getRequest()
44     {
45        return request;
46     }
47     
48     public WsdlResponse getResponse()
49     {
50        return response;
51     }
52     
53     public ModelItem getModelItem()
54     {
55        return request;
56     }
57     
58  	public void setResponse( WsdlResponse response )
59  	{
60  		this.response = response;
61  	}
62  
63  	public String getRequestContent()
64  	{
65  		if( requestContent != null )
66  			return requestContent;
67  		
68  		if( response == null )
69  			response = request.getResponse();
70  		
71  		return response == null ? request.getRequestContent() : response.getRequestContent(); 
72  	}
73  
74  	public StringToStringMap getRequestHeaders()
75  	{
76  		return response == null ? request.getRequestHeaders() : response.getRequestHeaders(); 
77  	}
78  	
79  	public Attachment[] getRequestAttachments()
80  	{
81  		return request.getAttachments();
82  	}
83  
84  	public Attachment[] getResponseAttachments()
85  	{
86  		if( response == null )
87  			response = request.getResponse();
88  		
89  		return response == null ? null : response.getAttachments();
90  	}
91  
92  	public String getResponseContent()
93  	{
94  		if( response == null )
95  			response = request.getResponse();
96  		
97  		return response == null ? null : response.getContentAsString();
98  	}
99  
100 	public StringToStringMap getResponseHeaders()
101 	{
102 		if( response == null )
103 			response = request.getResponse();
104 		
105 		return response == null ? null : response.getResponseHeaders();
106 	}
107 
108    public WsdlOperation getOperation()
109 	{
110 		return request.getOperation();
111 	}
112 
113 	public long getTimeTaken()
114 	{
115 		if( response == null )
116 			response = request.getResponse();
117 		
118 		return response == null ? 0 : response.getTimeTaken();
119 	}
120 
121 	public long getTimestamp()
122 	{
123 		if( response == null )
124 			response = request.getResponse();
125 		
126 		return response == null ? 0 : response.getTimestamp();
127 	}
128 
129 	public void setRequestContent( String requestContent )
130 	{
131 		this.requestContent = requestContent;
132 	}
133 
134 	public boolean isDiscarded()
135 	{
136 		return false;
137 	}
138 
139 	public Vector getRequestWssResult()
140 	{
141 		return null;
142 	}
143 
144 	public Vector getResponseWssResult()
145 	{
146 		return response.getWssResult();
147 	}
148 }