1 package org.apache.commons.jcs3.auxiliary.remote.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Set;
23
24 import org.apache.commons.jcs3.auxiliary.remote.value.RemoteCacheRequest;
25 import org.apache.commons.jcs3.auxiliary.remote.value.RemoteRequestType;
26 import org.apache.commons.jcs3.engine.behavior.ICacheElement;
27 import org.apache.commons.jcs3.log.Log;
28 import org.apache.commons.jcs3.log.LogManager;
29
30
31
32
33
34 public class RemoteCacheRequestFactory
35 {
36
37 private static final Log log = LogManager.getLog( RemoteCacheRequestFactory.class );
38
39
40
41
42
43
44
45
46 private static <K, V> RemoteCacheRequest<K, V> createRequest(final String cacheName, final RemoteRequestType requestType, final long requesterId)
47 {
48 final RemoteCacheRequest<K, V> request = new RemoteCacheRequest<>();
49 request.setCacheName( cacheName );
50 request.setRequestType( requestType );
51 request.setRequesterId( requesterId );
52
53 log.debug( "Created: {0}", request );
54
55 return request;
56 }
57
58
59
60
61
62
63
64
65
66 public static <K, V> RemoteCacheRequest<K, V> createGetRequest( final String cacheName, final K key, final long requesterId )
67 {
68 final RemoteCacheRequest<K, V> request = createRequest(cacheName, RemoteRequestType.GET, requesterId);
69 request.setKey( key );
70
71 return request;
72 }
73
74
75
76
77
78
79
80
81
82 public static <K, V> RemoteCacheRequest<K, V> createGetMatchingRequest( final String cacheName, final String pattern, final long requesterId )
83 {
84 final RemoteCacheRequest<K, V> request = createRequest(cacheName, RemoteRequestType.GET_MATCHING, requesterId);
85 request.setPattern( pattern );
86
87 return request;
88 }
89
90
91
92
93
94
95
96
97
98 public static <K, V> RemoteCacheRequest<K, V> createGetMultipleRequest( final String cacheName, final Set<K> keys, final long requesterId )
99 {
100 final RemoteCacheRequest<K, V> request = createRequest(cacheName, RemoteRequestType.GET_MULTIPLE, requesterId);
101 request.setKeySet(keys);
102
103 return request;
104 }
105
106
107
108
109
110
111
112
113
114 public static <K, V> RemoteCacheRequest<K, V> createRemoveRequest( final String cacheName, final K key, final long requesterId )
115 {
116 final RemoteCacheRequest<K, V> request = createRequest(cacheName, RemoteRequestType.REMOVE, requesterId);
117 request.setKey( key );
118
119 return request;
120 }
121
122
123
124
125
126
127
128
129 public static RemoteCacheRequest<String, String> createGetKeySetRequest( final String cacheName, final long requesterId )
130 {
131 final RemoteCacheRequest<String, String> request = createRequest(cacheName, RemoteRequestType.GET_KEYSET, requesterId);
132 request.setKey( cacheName );
133
134 return request;
135 }
136
137
138
139
140
141
142
143
144 public static <K, V> RemoteCacheRequest<K, V> createRemoveAllRequest( final String cacheName, final long requesterId )
145 {
146
147 return createRequest(cacheName, RemoteRequestType.REMOVE_ALL, requesterId);
148 }
149
150
151
152
153
154
155
156
157 public static <K, V> RemoteCacheRequest<K, V> createDisposeRequest( final String cacheName, final long requesterId )
158 {
159
160 return createRequest(cacheName, RemoteRequestType.DISPOSE, requesterId);
161 }
162
163
164
165
166
167
168
169
170 public static <K, V> RemoteCacheRequest<K, V> createUpdateRequest( final ICacheElement<K, V> cacheElement, final long requesterId )
171 {
172 final RemoteCacheRequest<K, V> request = createRequest(null, RemoteRequestType.UPDATE, requesterId);
173 if ( cacheElement != null )
174 {
175 request.setCacheName( cacheElement.getCacheName() );
176 request.setCacheElement( cacheElement );
177 request.setKey( cacheElement.getKey() );
178 }
179 else
180 {
181 log.error( "Can't create a proper update request for a null cache element." );
182 }
183
184 return request;
185 }
186
187
188
189
190
191
192
193 public static <K, V> RemoteCacheRequest<K, V> createAliveCheckRequest( final long requesterId )
194 {
195
196 return createRequest(null, RemoteRequestType.ALIVE_CHECK, requesterId);
197 }
198 }