1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http.protocol;
29
30 import java.util.Map;
31 import java.util.concurrent.ConcurrentHashMap;
32
33 import org.apache.hc.core5.annotation.Contract;
34 import org.apache.hc.core5.annotation.ThreadingBehavior;
35 import org.apache.hc.core5.http.HttpVersion;
36 import org.apache.hc.core5.http.ProtocolVersion;
37 import org.apache.hc.core5.util.Args;
38
39
40
41
42
43
44
45
46
47 @Deprecated
48 @Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
49 public class BasicHttpContext implements HttpContext {
50
51 private final HttpContext parentContext;
52 private final Map<String, Object> map;
53
54 private ProtocolVersion version;
55
56 public BasicHttpContext() {
57 this(null);
58 }
59
60 public BasicHttpContext(final HttpContext parentContext) {
61 super();
62 this.map = new ConcurrentHashMap<>();
63 this.parentContext = parentContext;
64 }
65
66 @Override
67 public Object getAttribute(final String id) {
68 Args.notNull(id, "Id");
69 Object obj = this.map.get(id);
70 if (obj == null && this.parentContext != null) {
71 obj = this.parentContext.getAttribute(id);
72 }
73 return obj;
74 }
75
76 @Override
77 public Object setAttribute(final String id, final Object obj) {
78 Args.notNull(id, "Id");
79 if (obj != null) {
80 return this.map.put(id, obj);
81 }
82 return this.map.remove(id);
83 }
84
85 @Override
86 public Object removeAttribute(final String id) {
87 Args.notNull(id, "Id");
88 return this.map.remove(id);
89 }
90
91
92
93
94 @Override
95 public ProtocolVersion getProtocolVersion() {
96 return this.version != null ? this.version : HttpVersion.DEFAULT;
97 }
98
99
100
101
102 @Override
103 public void setProtocolVersion(final ProtocolVersion version) {
104 this.version = version;
105 }
106
107
108
109
110 public void clear() {
111 this.map.clear();
112 }
113
114 @Override
115 public String toString() {
116 return this.map.toString();
117 }
118
119 }