Skip to content
This repository was archived by the owner on May 28, 2018. It is now read-only.

Commit 0fefc33

Browse files
Marek PotociarGerrit Code Review
authored andcommitted
Merge "Refactoring InjectionManager creation in Hk2InjectionManagerFactory." into 2.x
2 parents 936cc29 + 7760491 commit 0fefc33

File tree

1 file changed

+41
-22
lines changed

1 file changed

+41
-22
lines changed

core-common/src/main/java/org/glassfish/jersey/hk2/Hk2InjectionManagerFactory.java

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,44 +71,63 @@ private enum Hk2InjectionManagerStrategy {
7171
/**
7272
* @see ImmediateHk2InjectionManager
7373
*/
74-
IMMEDIATE,
74+
IMMEDIATE {
75+
@Override
76+
InjectionManager createInjectionManager() {
77+
return new ImmediateHk2InjectionManager();
78+
}
79+
80+
@Override
81+
InjectionManager createInjectionManager(final Object parent) {
82+
return new ImmediateHk2InjectionManager(parent);
83+
}
84+
85+
@Override
86+
InjectionManager createInjectionManager(final Binder binder) {
87+
return new ImmediateHk2InjectionManager(binder);
88+
}
89+
},
7590
/**
7691
* @see DelayedHk2InjectionManager
7792
*/
78-
DELAYED
93+
DELAYED {
94+
@Override
95+
InjectionManager createInjectionManager() {
96+
return new DelayedHk2InjectionManager();
97+
}
98+
99+
@Override
100+
InjectionManager createInjectionManager(final Object parent) {
101+
return new DelayedHk2InjectionManager(parent);
102+
}
103+
104+
@Override
105+
InjectionManager createInjectionManager(final Binder binder) {
106+
return new DelayedHk2InjectionManager(binder);
107+
}
108+
};
109+
110+
abstract InjectionManager createInjectionManager();
111+
112+
abstract InjectionManager createInjectionManager(Object parent);
113+
114+
abstract InjectionManager createInjectionManager(Binder binder);
79115
}
80116

81117
@Override
82118
public InjectionManager create() {
83-
switch (getStrategy()) {
84-
case DELAYED:
85-
return initInjectionManager(new DelayedHk2InjectionManager());
86-
default:
87-
return initInjectionManager(new ImmediateHk2InjectionManager());
88-
89-
}
119+
return initInjectionManager(getStrategy().createInjectionManager());
90120
}
91121

92122
@Override
93123
public InjectionManager create(Object parent) {
94-
switch (getStrategy()) {
95-
case DELAYED:
96-
return initInjectionManager(new DelayedHk2InjectionManager(parent));
97-
default:
98-
return initInjectionManager(new ImmediateHk2InjectionManager(parent));
99-
100-
}
124+
return initInjectionManager(getStrategy().createInjectionManager(parent));
101125
}
102126

103127
// TODO: CANDIDATE TO DELETE: is used in RuntimeDelegateImpl super(...).
104128
@Override
105129
public InjectionManager create(Binder binder) {
106-
switch (getStrategy()) {
107-
case DELAYED:
108-
return initInjectionManager(new DelayedHk2InjectionManager(binder));
109-
default:
110-
return initInjectionManager(new ImmediateHk2InjectionManager(binder));
111-
}
130+
return initInjectionManager(getStrategy().createInjectionManager(binder));
112131
}
113132

114133
private Hk2InjectionManagerStrategy getStrategy() {

0 commit comments

Comments
 (0)