View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  
22  
23  package org.opencastproject.security.util;
24  
25  import org.apache.http.Header;
26  import org.apache.http.HeaderIterator;
27  import org.apache.http.HttpEntity;
28  import org.apache.http.HttpResponse;
29  import org.apache.http.ProtocolVersion;
30  import org.apache.http.StatusLine;
31  import org.apache.http.params.HttpParams;
32  
33  import java.util.Locale;
34  import java.util.UUID;
35  
36  /**
37   * A wrapper for {@link org.apache.http.HttpResponse} objects that implements
38   * {@link #hashCode()} and {@link #equals(Object)} to allow for usage in hash based data structures.
39   *
40   * todo document motivation of this class
41   */
42  public final class HttpResponseWrapper implements HttpResponse {
43    private final HttpResponse response;
44    private final String id;
45  
46    public HttpResponseWrapper(HttpResponse response) {
47      this.response = response;
48      this.id = UUID.randomUUID().toString();
49    }
50  
51    @Override public int hashCode() {
52      return id.hashCode();
53    }
54  
55    @Override public boolean equals(Object o) {
56      if (o instanceof HttpResponseWrapper) {
57        return id.equals(((HttpResponseWrapper) o).id);
58      } else {
59        return false;
60      }
61    }
62  
63    @Override public StatusLine getStatusLine() {
64      return response.getStatusLine();
65    }
66  
67    @Override public void setStatusLine(StatusLine statusLine) {
68      response.setStatusLine(statusLine);
69    }
70  
71    @Override public void setStatusLine(ProtocolVersion protocolVersion, int i) {
72      response.setStatusLine(protocolVersion, i);
73    }
74  
75    @Override public void setStatusLine(ProtocolVersion protocolVersion, int i, String s) {
76      response.setStatusLine(protocolVersion, i, s);
77    }
78  
79    @Override public void setStatusCode(int i) throws IllegalStateException {
80      response.setStatusCode(i);
81    }
82  
83    @Override public void setReasonPhrase(String s) throws IllegalStateException {
84      response.setReasonPhrase(s);
85    }
86  
87    @Override public HttpEntity getEntity() {
88      return response.getEntity();
89    }
90  
91    @Override public void setEntity(HttpEntity httpEntity) {
92      response.setEntity(httpEntity);
93    }
94  
95    @Override public Locale getLocale() {
96      return response.getLocale();
97    }
98  
99    @Override public void setLocale(Locale locale) {
100     response.setLocale(locale);
101   }
102 
103   @Override public ProtocolVersion getProtocolVersion() {
104     return response.getProtocolVersion();
105   }
106 
107   @Override public boolean containsHeader(String s) {
108     return response.containsHeader(s);
109   }
110 
111   @Override public Header[] getHeaders(String s) {
112     return response.getHeaders(s);
113   }
114 
115   @Override public Header getFirstHeader(String s) {
116     return response.getFirstHeader(s);
117   }
118 
119   @Override public Header getLastHeader(String s) {
120     return response.getLastHeader(s);
121   }
122 
123   @Override public Header[] getAllHeaders() {
124     return response.getAllHeaders();
125   }
126 
127   @Override public void addHeader(Header header) {
128     response.addHeader(header);
129   }
130 
131   @Override public void addHeader(String s, String s2) {
132     response.addHeader(s, s2);
133   }
134 
135   @Override public void setHeader(Header header) {
136     response.setHeader(header);
137   }
138 
139   @Override public void setHeader(String s, String s2) {
140     response.setHeader(s, s2);
141   }
142 
143   @Override public void setHeaders(Header[] headers) {
144     response.setHeaders(headers);
145   }
146 
147   @Override public void removeHeader(Header header) {
148     response.removeHeader(header);
149   }
150 
151   @Override public void removeHeaders(String s) {
152     response.removeHeaders(s);
153   }
154 
155   @Override public HeaderIterator headerIterator() {
156     return response.headerIterator();
157   }
158 
159   @Override public HeaderIterator headerIterator(String s) {
160     return response.headerIterator(s);
161   }
162 
163   @Override public HttpParams getParams() {
164     return response.getParams();
165   }
166 
167   @Override public void setParams(HttpParams httpParams) {
168     response.setParams(httpParams);
169   }
170 }