1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.context;
21
22 import org.apache.myfaces.tobago.context.Markup;
23
24 public final class ThemeConfigCacheKey {
25
26 private final ClientPropertiesKey clientPropertiesKey;
27 private final String rendererType;
28 private final String name;
29 private final Markup markup;
30 private final int hashCode;
31
32 public ThemeConfigCacheKey(
33 ClientPropertiesKey clientPropertiesKey, String rendererType, Markup markup, String name) {
34 this.clientPropertiesKey = clientPropertiesKey;
35 this.rendererType = rendererType;
36 this.markup = markup;
37 this.name = name;
38 hashCode = calcHashCode();
39 }
40
41 @Override
42 public boolean equals(Object o) {
43 if (this == o) {
44 return true;
45 }
46 if (o == null || getClass() != o.getClass()) {
47 return false;
48 }
49
50 ThemeConfigCacheKey cacheKey = (ThemeConfigCacheKey) o;
51
52 if (!rendererType.equals(cacheKey.rendererType)) {
53 return false;
54 }
55 if (!name.equals(cacheKey.name)) {
56 return false;
57 }
58 if (markup != null ? !markup.equals(cacheKey.markup) : cacheKey.markup != null) {
59 return false;
60 }
61 if (!clientPropertiesKey.equals(cacheKey.clientPropertiesKey)) {
62 return false;
63 }
64
65 return true;
66 }
67
68 private int calcHashCode() {
69 int result = clientPropertiesKey.hashCode();
70 result = 31 * result + rendererType.hashCode();
71 result = 31 * result + name.hashCode();
72 result = 31 * result + (markup != null ? markup.hashCode() : 0);
73 return result;
74 }
75
76 @Override
77 public int hashCode() {
78 return hashCode;
79 }
80
81
82 @Override
83 public String toString() {
84 return "ThemeConfigCacheKey(" + clientPropertiesKey
85 + "," + rendererType
86 + "," + markup
87 + "," + name + ')';
88 }
89 }