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
29
30
31
32
33
34 package info.magnolia.objectfactory.configuration;
35
36 import java.lang.annotation.Annotation;
37 import java.util.Objects;
38
39 import com.google.inject.Key;
40
41
42
43
44
45
46 public abstract class ComponentConfiguration<T> implements Cloneable {
47
48 private Class<T> type;
49 private String scope;
50 private boolean lazy;
51
52 private Annotation bindingContext;
53
54 protected ComponentConfiguration() {}
55
56 public void setBindingContext(Annotation bindingContext) {
57 this.bindingContext = bindingContext;
58 }
59
60 public Annotation getBindingContext() {
61 return bindingContext;
62 }
63
64 protected ComponentConfiguration(Class<T> type) {
65 this.type = type;
66 }
67
68 public Class<T> getType() {
69 return type;
70 }
71
72 public Key<T> getKey() {
73 return bindingContext == null ? Key.get(type) : Key.get(type, bindingContext);
74 }
75
76 public void setType(Class<T> type) {
77 this.type = type;
78 }
79
80 public String getScope() {
81 return scope;
82 }
83
84 public void setScope(String scope) {
85 this.scope = scope;
86 }
87
88 public boolean isLazy() {
89 return lazy;
90 }
91
92 public void setLazy(boolean lazy) {
93 this.lazy = lazy;
94 }
95
96 @Override
97 protected ComponentConfiguration clone() throws CloneNotSupportedException {
98 return (ComponentConfiguration) super.clone();
99 }
100
101 @Override
102 public boolean equals(Object o) {
103 if (this == o) return true;
104 if (o == null || getClass() != o.getClass()) return false;
105
106 ComponentConfigurationfo/magnolia/objectfactory/configuration/ComponentConfiguration.html#ComponentConfiguration">ComponentConfiguration that = (ComponentConfiguration) o;
107
108 return Objects.equals(this.type, that.type) &&
109 Objects.equals(this.scope, that.scope) &&
110 Objects.equals(this.bindingContext, that.bindingContext) &&
111 Objects.equals(this.lazy, that.lazy);
112 }
113
114 @Override
115 public int hashCode() {
116 return Objects.hash(type, scope, lazy, bindingContext);
117 }
118 }