Clover icon

Magnolia Module Cache 5.5.9

  1. Project Clover database Mon Nov 25 2019 16:46:50 CET
  2. Package info.magnolia.module.cache.cachekey

File DefaultCacheKey.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart5.png
63% of files have more coverage

Code metrics

44
16
4
1
156
98
27
1.69
4
4
6.75
22% of code in this file is excluded from these metrics.

Classes

Class Line # Actions
DefaultCacheKey 44 16 22% 27 32
0.550%
 

Contributing tests

This file is covered by 12 tests. .

Source view

1    /**
2    * This file Copyright (c) 2015-2018 Magnolia International
3    * Ltd. (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10    * This file is distributed in the hope that it will be
11    * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12    * implied warranty of MERCHANTABILITY or FITNESS FOR A
13    * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14    * Redistribution, except as permitted by whichever of the GPL
15    * or MNA you select, is prohibited.
16    *
17    * 1. For the GPL license (GPL), you can redistribute and/or
18    * modify this file under the terms of the GNU General
19    * Public License, Version 3, as published by the Free Software
20    * Foundation. You should have received a copy of the GNU
21    * General Public License, Version 3 along with this program;
22    * if not, write to the Free Software Foundation, Inc., 51
23    * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24    *
25    * 2. For the Magnolia Network Agreement (MNA), this file
26    * and the accompanying materials are made available under the
27    * terms of the MNA which accompanies this distribution, and
28    * is available at http://www.magnolia-cms.com/mna.html
29    *
30    * Any modifications to this file must keep this entire header
31    * intact.
32    *
33    */
34    package info.magnolia.module.cache.cachekey;
35   
36    import java.io.Serializable;
37    import java.util.Collections;
38    import java.util.Map;
39   
40    /**
41    * Default cache key implementation. Key is based on the URI, server name, parameters and request headers.
42    * Since the server name is likely to change from server to server, copying cached items around will most likely not help to avoid generating cache entries.
43    */
 
44    public class DefaultCacheKey implements CacheKey {
45   
46    // Keep the svuid fixed to prevent deserialization errors. Keep in mind that when adding new properties they will be deserialized to null!
47    private static final long serialVersionUID = 2699497852929596651L;
48   
49    private Boolean isSecured;
50   
51    private String uri;
52    private String serverName;
53    private String channel;
54    private String locale;
55    private String method;
56   
57    private Map<String, String> params;
58    private Map<String, Serializable> additionalAttributes;
59   
 
60  13 toggle public DefaultCacheKey(String uri, String serverName, String locale, String channel, String method,
61    Map<String, String> params, Boolean isSecure, Map<String, Serializable> additionalAttributes) {
62  13 this.uri = uri;
63  13 this.serverName = serverName;
64  13 this.channel = channel;
65  13 this.locale = locale;
66  13 this.params = params == null ? null : Collections.unmodifiableMap(params);
67  13 this.isSecured = isSecure;
68  13 this.method = method == null ? null : method.toLowerCase();
69  13 this.additionalAttributes = additionalAttributes == null ? null : Collections.unmodifiableMap(additionalAttributes);
70    }
71   
 
72  0 toggle @Override
73    public int hashCode() {
74  0 return (uri == null ? 13 : uri.hashCode())
75  0 + (serverName == null ? 17 : serverName.hashCode())
76  0 + (locale == null ? 19 : locale.hashCode())
77  0 + (channel == null ? 23 : channel.hashCode())
78  0 + (params == null ? 29 : params.hashCode())
79  0 + (isSecured == null ? 31 : isSecured.hashCode())
80  0 + (method == null ? 37 : method.hashCode())
81  0 + (params == null ? 41 : params.hashCode())
82  0 + (additionalAttributes == null ? 43 : additionalAttributes.hashCode())
83    ;
84    }
85   
 
86  2 toggle @Override
87    public boolean equals(Object obj) {
88  2 if (this == obj) {
89  1 return true;
90    }
91  1 if (obj == null || !(obj instanceof DefaultCacheKey)) {
92  0 return false;
93    }
94  1 DefaultCacheKey that = (DefaultCacheKey) obj;
95  1 return (this.uri == null ? that.uri == null : this.uri.equals(that.uri))
96  1 && (this.serverName == null ? that.serverName == null : this.serverName.equals(that.serverName))
97  1 && (this.locale == null ? that.locale == null : this.locale.equals(that.locale))
98  1 && (this.channel == null ? that.channel == null : this.channel.equals(that.channel))
99  1 && (this.params == null ? that.params == null : this.params.equals(that.params))
100  1 && (this.isSecured == null ? that.isSecured == null : this.isSecured.equals(that.isSecured))
101  1 && (this.method == null ? that.method == null : this.method.equals(that.method))
102  1 && (this.additionalAttributes == null ? that.additionalAttributes == null : this.additionalAttributes.equals(that.additionalAttributes))
103    ;
104    }
105   
 
106    toggle public String getUri() {
107    return uri;
108    }
109   
 
110    toggle public String getDomain() {
111    return serverName;
112    }
113   
 
114    toggle public String getLocale() {
115    return locale;
116    }
117   
 
118    toggle public String getChannel() {
119    return channel;
120    }
121   
 
122    toggle public String getServerName() {
123    return serverName;
124    }
125   
 
126    toggle public String getMethod() {
127    return method;
128    }
129   
 
130    toggle public Boolean getIsSecured() {
131    return this.isSecured;
132    }
133   
 
134    toggle public Map<String, String> getParams() {
135    return params;
136    }
137   
 
138    toggle public Map<String, Serializable> getAdditionalAttributes() {
139    return additionalAttributes;
140    }
141   
 
142  0 toggle @Override
143    public String toString() {
144  0 return "DefaultCacheKey{" +
145    "uri='" + uri + '\'' +
146    ", serverName='" + serverName + '\'' +
147    ", locale='" + locale + '\'' +
148    ", channel='" + channel + '\'' +
149    ", params=" + params + '\'' +
150    ", secure='" + isSecured + "'" +
151    ", method='" + method + "\'" +
152    ", additionalAttributes='" + additionalAttributes + '\'' +
153    '}';
154    }
155   
156    }