mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 07:57:13 +02:00
Inject flows with a nested ternary rather than a map
This is more efficient (we were constructing all the providers and the map anew for every flow) and prettier. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=125479328
This commit is contained in:
parent
317e92d88c
commit
0d47534246
2 changed files with 131 additions and 135 deletions
|
@ -14,22 +14,152 @@
|
||||||
|
|
||||||
package google.registry.flows;
|
package google.registry.flows;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
import dagger.Subcomponent;
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
import google.registry.flows.contact.ContactCheckFlow;
|
||||||
|
import google.registry.flows.contact.ContactCreateFlow;
|
||||||
|
import google.registry.flows.contact.ContactDeleteFlow;
|
||||||
|
import google.registry.flows.contact.ContactInfoFlow;
|
||||||
|
import google.registry.flows.contact.ContactTransferApproveFlow;
|
||||||
|
import google.registry.flows.contact.ContactTransferCancelFlow;
|
||||||
|
import google.registry.flows.contact.ContactTransferQueryFlow;
|
||||||
|
import google.registry.flows.contact.ContactTransferRejectFlow;
|
||||||
|
import google.registry.flows.contact.ContactTransferRequestFlow;
|
||||||
|
import google.registry.flows.contact.ContactUpdateFlow;
|
||||||
|
import google.registry.flows.domain.ClaimsCheckFlow;
|
||||||
|
import google.registry.flows.domain.DomainAllocateFlow;
|
||||||
|
import google.registry.flows.domain.DomainApplicationCreateFlow;
|
||||||
|
import google.registry.flows.domain.DomainApplicationDeleteFlow;
|
||||||
|
import google.registry.flows.domain.DomainApplicationInfoFlow;
|
||||||
|
import google.registry.flows.domain.DomainApplicationUpdateFlow;
|
||||||
|
import google.registry.flows.domain.DomainCheckFlow;
|
||||||
|
import google.registry.flows.domain.DomainCreateFlow;
|
||||||
|
import google.registry.flows.domain.DomainDeleteFlow;
|
||||||
|
import google.registry.flows.domain.DomainInfoFlow;
|
||||||
|
import google.registry.flows.domain.DomainRenewFlow;
|
||||||
|
import google.registry.flows.domain.DomainRestoreRequestFlow;
|
||||||
|
import google.registry.flows.domain.DomainTransferApproveFlow;
|
||||||
|
import google.registry.flows.domain.DomainTransferCancelFlow;
|
||||||
|
import google.registry.flows.domain.DomainTransferQueryFlow;
|
||||||
|
import google.registry.flows.domain.DomainTransferRejectFlow;
|
||||||
|
import google.registry.flows.domain.DomainTransferRequestFlow;
|
||||||
|
import google.registry.flows.domain.DomainUpdateFlow;
|
||||||
|
import google.registry.flows.host.HostCheckFlow;
|
||||||
|
import google.registry.flows.host.HostCreateFlow;
|
||||||
|
import google.registry.flows.host.HostDeleteFlow;
|
||||||
|
import google.registry.flows.host.HostInfoFlow;
|
||||||
|
import google.registry.flows.host.HostUpdateFlow;
|
||||||
|
import google.registry.flows.poll.PollAckFlow;
|
||||||
|
import google.registry.flows.poll.PollRequestFlow;
|
||||||
|
import google.registry.flows.session.HelloFlow;
|
||||||
|
import google.registry.flows.session.LoginFlow;
|
||||||
|
import google.registry.flows.session.LogoutFlow;
|
||||||
import google.registry.model.eppcommon.Trid;
|
import google.registry.model.eppcommon.Trid;
|
||||||
|
|
||||||
/** Dagger component for flow classes. */
|
/** Dagger component for flow classes. */
|
||||||
@FlowScope
|
@FlowScope
|
||||||
@Subcomponent(modules = FlowModule.class)
|
@Subcomponent(modules = {
|
||||||
|
FlowModule.class,
|
||||||
|
FlowComponent.FlowComponentModule.class})
|
||||||
public interface FlowComponent {
|
public interface FlowComponent {
|
||||||
|
|
||||||
Trid trid();
|
Trid trid();
|
||||||
FlowRunner flowRunner();
|
FlowRunner flowRunner();
|
||||||
|
|
||||||
|
// Flows must be added here and in FlowComponentModule below.
|
||||||
|
ContactCheckFlow contactCheckFlow();
|
||||||
|
ContactCreateFlow contactCreateFlow();
|
||||||
|
ContactDeleteFlow contactDeleteFlow();
|
||||||
|
ContactInfoFlow contactInfoFlow();
|
||||||
|
ContactTransferApproveFlow contactTransferApproveFlow();
|
||||||
|
ContactTransferCancelFlow contactTransferCancelFlow();
|
||||||
|
ContactTransferQueryFlow contactTransferQueryFlow();
|
||||||
|
ContactTransferRejectFlow contactTransferRejectFlow();
|
||||||
|
ContactTransferRequestFlow contactTransferRequestFlow();
|
||||||
|
ContactUpdateFlow contactUpdateFlow();
|
||||||
|
ClaimsCheckFlow claimsCheckFlow();
|
||||||
|
DomainAllocateFlow domainAllocateFlow();
|
||||||
|
DomainApplicationCreateFlow domainApplicationCreateFlow();
|
||||||
|
DomainApplicationDeleteFlow domainApplicationDeleteFlow();
|
||||||
|
DomainApplicationInfoFlow domainApplicationInfoFlow();
|
||||||
|
DomainApplicationUpdateFlow domainApplicationUpdateFlow();
|
||||||
|
DomainCheckFlow domainCheckFlow();
|
||||||
|
DomainCreateFlow domainCreateFlow();
|
||||||
|
DomainDeleteFlow domainDeleteFlow();
|
||||||
|
DomainInfoFlow domainInfoFlow();
|
||||||
|
DomainRenewFlow domainRenewFlow();
|
||||||
|
DomainRestoreRequestFlow domainRestoreRequestFlow();
|
||||||
|
DomainTransferApproveFlow domainTransferApproveFlow();
|
||||||
|
DomainTransferCancelFlow domainTransferCancelFlow();
|
||||||
|
DomainTransferQueryFlow domainTransferQueryFlow();
|
||||||
|
DomainTransferRejectFlow domainTransferRejectFlow();
|
||||||
|
DomainTransferRequestFlow domainTransferRequestFlow();
|
||||||
|
DomainUpdateFlow domainUpdateFlow();
|
||||||
|
HostCheckFlow hostCheckFlow();
|
||||||
|
HostCreateFlow hostCreateFlow();
|
||||||
|
HostDeleteFlow hostDeleteFlow();
|
||||||
|
HostInfoFlow hostInfoFlow();
|
||||||
|
HostUpdateFlow hostUpdateFlow();
|
||||||
|
PollAckFlow pollAckFlow();
|
||||||
|
PollRequestFlow pollRequestFlow();
|
||||||
|
HelloFlow helloFlow();
|
||||||
|
LoginFlow loginFlow();
|
||||||
|
LogoutFlow logoutFlow();
|
||||||
|
|
||||||
/** Dagger-implemented builder for this subcomponent. */
|
/** Dagger-implemented builder for this subcomponent. */
|
||||||
@Subcomponent.Builder
|
@Subcomponent.Builder
|
||||||
interface Builder {
|
interface Builder {
|
||||||
Builder flowModule(FlowModule flowModule);
|
Builder flowModule(FlowModule flowModule);
|
||||||
FlowComponent build();
|
FlowComponent build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Module to delegate injection of a desired {@link Flow}. */
|
||||||
|
@Module
|
||||||
|
static class FlowComponentModule {
|
||||||
|
@Provides
|
||||||
|
@FlowScope
|
||||||
|
static Flow provideFlow(FlowComponent flows, Class<? extends Flow> clazz) {
|
||||||
|
return clazz.equals(ContactCheckFlow.class) ? flows.contactCheckFlow()
|
||||||
|
: clazz.equals(ContactCreateFlow.class) ? flows.contactCreateFlow()
|
||||||
|
: clazz.equals(ContactDeleteFlow.class) ? flows.contactDeleteFlow()
|
||||||
|
: clazz.equals(ContactInfoFlow.class) ? flows.contactInfoFlow()
|
||||||
|
: clazz.equals(ContactTransferApproveFlow.class) ? flows.contactTransferApproveFlow()
|
||||||
|
: clazz.equals(ContactTransferCancelFlow.class) ? flows.contactTransferCancelFlow()
|
||||||
|
: clazz.equals(ContactTransferQueryFlow.class) ? flows.contactTransferQueryFlow()
|
||||||
|
: clazz.equals(ContactTransferRejectFlow.class) ? flows.contactTransferRejectFlow()
|
||||||
|
: clazz.equals(ContactTransferRequestFlow.class) ? flows.contactTransferRequestFlow()
|
||||||
|
: clazz.equals(ContactUpdateFlow.class) ? flows.contactUpdateFlow()
|
||||||
|
: clazz.equals(ClaimsCheckFlow.class) ? flows.claimsCheckFlow()
|
||||||
|
: clazz.equals(DomainAllocateFlow.class) ? flows.domainAllocateFlow()
|
||||||
|
: clazz.equals(DomainApplicationCreateFlow.class) ? flows.domainApplicationCreateFlow()
|
||||||
|
: clazz.equals(DomainApplicationDeleteFlow.class) ? flows.domainApplicationDeleteFlow()
|
||||||
|
: clazz.equals(DomainApplicationInfoFlow.class) ? flows.domainApplicationInfoFlow()
|
||||||
|
: clazz.equals(DomainApplicationUpdateFlow.class) ? flows.domainApplicationUpdateFlow()
|
||||||
|
: clazz.equals(DomainCheckFlow.class) ? flows.domainCheckFlow()
|
||||||
|
: clazz.equals(DomainCreateFlow.class) ? flows.domainCreateFlow()
|
||||||
|
: clazz.equals(DomainDeleteFlow.class) ? flows.domainDeleteFlow()
|
||||||
|
: clazz.equals(DomainInfoFlow.class) ? flows.domainInfoFlow()
|
||||||
|
: clazz.equals(DomainRenewFlow.class) ? flows.domainRenewFlow()
|
||||||
|
: clazz.equals(DomainRestoreRequestFlow.class) ? flows.domainRestoreRequestFlow()
|
||||||
|
: clazz.equals(DomainTransferApproveFlow.class) ? flows.domainTransferApproveFlow()
|
||||||
|
: clazz.equals(DomainTransferCancelFlow.class) ? flows.domainTransferCancelFlow()
|
||||||
|
: clazz.equals(DomainTransferQueryFlow.class) ? flows.domainTransferQueryFlow()
|
||||||
|
: clazz.equals(DomainTransferRejectFlow.class) ? flows.domainTransferRejectFlow()
|
||||||
|
: clazz.equals(DomainTransferRequestFlow.class) ? flows.domainTransferRequestFlow()
|
||||||
|
: clazz.equals(DomainUpdateFlow.class) ? flows.domainUpdateFlow()
|
||||||
|
: clazz.equals(HostCheckFlow.class) ? flows.hostCheckFlow()
|
||||||
|
: clazz.equals(HostCreateFlow.class) ? flows.hostCreateFlow()
|
||||||
|
: clazz.equals(HostDeleteFlow.class) ? flows.hostDeleteFlow()
|
||||||
|
: clazz.equals(HostInfoFlow.class) ? flows.hostInfoFlow()
|
||||||
|
: clazz.equals(HostUpdateFlow.class) ? flows.hostUpdateFlow()
|
||||||
|
: clazz.equals(PollAckFlow.class) ? flows.pollAckFlow()
|
||||||
|
: clazz.equals(PollRequestFlow.class) ? flows.pollRequestFlow()
|
||||||
|
: clazz.equals(HelloFlow.class) ? flows.helloFlow()
|
||||||
|
: clazz.equals(LoginFlow.class) ? flows.loginFlow()
|
||||||
|
: clazz.equals(LogoutFlow.class) ? flows.logoutFlow()
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,58 +16,16 @@ package google.registry.flows;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkState;
|
import static com.google.common.base.Preconditions.checkState;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
|
||||||
import google.registry.flows.contact.ContactCheckFlow;
|
|
||||||
import google.registry.flows.contact.ContactCreateFlow;
|
|
||||||
import google.registry.flows.contact.ContactDeleteFlow;
|
|
||||||
import google.registry.flows.contact.ContactInfoFlow;
|
|
||||||
import google.registry.flows.contact.ContactTransferApproveFlow;
|
|
||||||
import google.registry.flows.contact.ContactTransferCancelFlow;
|
|
||||||
import google.registry.flows.contact.ContactTransferQueryFlow;
|
|
||||||
import google.registry.flows.contact.ContactTransferRejectFlow;
|
|
||||||
import google.registry.flows.contact.ContactTransferRequestFlow;
|
|
||||||
import google.registry.flows.contact.ContactUpdateFlow;
|
|
||||||
import google.registry.flows.domain.ClaimsCheckFlow;
|
|
||||||
import google.registry.flows.domain.DomainAllocateFlow;
|
|
||||||
import google.registry.flows.domain.DomainApplicationCreateFlow;
|
|
||||||
import google.registry.flows.domain.DomainApplicationDeleteFlow;
|
|
||||||
import google.registry.flows.domain.DomainApplicationInfoFlow;
|
|
||||||
import google.registry.flows.domain.DomainApplicationUpdateFlow;
|
|
||||||
import google.registry.flows.domain.DomainCheckFlow;
|
|
||||||
import google.registry.flows.domain.DomainCreateFlow;
|
|
||||||
import google.registry.flows.domain.DomainDeleteFlow;
|
|
||||||
import google.registry.flows.domain.DomainInfoFlow;
|
|
||||||
import google.registry.flows.domain.DomainRenewFlow;
|
|
||||||
import google.registry.flows.domain.DomainRestoreRequestFlow;
|
|
||||||
import google.registry.flows.domain.DomainTransferApproveFlow;
|
|
||||||
import google.registry.flows.domain.DomainTransferCancelFlow;
|
|
||||||
import google.registry.flows.domain.DomainTransferQueryFlow;
|
|
||||||
import google.registry.flows.domain.DomainTransferRejectFlow;
|
|
||||||
import google.registry.flows.domain.DomainTransferRequestFlow;
|
|
||||||
import google.registry.flows.domain.DomainUpdateFlow;
|
|
||||||
import google.registry.flows.host.HostCheckFlow;
|
|
||||||
import google.registry.flows.host.HostCreateFlow;
|
|
||||||
import google.registry.flows.host.HostDeleteFlow;
|
|
||||||
import google.registry.flows.host.HostInfoFlow;
|
|
||||||
import google.registry.flows.host.HostUpdateFlow;
|
|
||||||
import google.registry.flows.picker.FlowPicker;
|
import google.registry.flows.picker.FlowPicker;
|
||||||
import google.registry.flows.poll.PollAckFlow;
|
|
||||||
import google.registry.flows.poll.PollRequestFlow;
|
|
||||||
import google.registry.flows.session.HelloFlow;
|
|
||||||
import google.registry.flows.session.LoginFlow;
|
|
||||||
import google.registry.flows.session.LogoutFlow;
|
|
||||||
import google.registry.model.eppcommon.Trid;
|
import google.registry.model.eppcommon.Trid;
|
||||||
import google.registry.model.eppinput.EppInput;
|
import google.registry.model.eppinput.EppInput;
|
||||||
|
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Provider;
|
|
||||||
import javax.inject.Qualifier;
|
import javax.inject.Qualifier;
|
||||||
|
|
||||||
/** Module to choose and instantiate an EPP flow. */
|
/** Module to choose and instantiate an EPP flow. */
|
||||||
|
@ -199,90 +157,6 @@ public class FlowModule {
|
||||||
return Trid.create(eppInput.getCommandWrapper().getClTrid());
|
return Trid.create(eppInput.getCommandWrapper().getClTrid());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Provides a mapping between flow classes and injected providers. */
|
|
||||||
@Provides
|
|
||||||
@FlowScope
|
|
||||||
static Map<Class<? extends Flow>, Provider<? extends Flow>> provideFlowClassMap(
|
|
||||||
Provider<ContactCheckFlow> contactCheckFlowProvider,
|
|
||||||
Provider<ContactCreateFlow> contactCreateFlowProvider,
|
|
||||||
Provider<ContactDeleteFlow> contactDeleteFlowProvider,
|
|
||||||
Provider<ContactInfoFlow> contactInfoFlowProvider,
|
|
||||||
Provider<ContactTransferApproveFlow> contactTransferApproveFlowProvider,
|
|
||||||
Provider<ContactTransferCancelFlow> contactTransferCancelFlowProvider,
|
|
||||||
Provider<ContactTransferQueryFlow> contactTransferQueryFlowProvider,
|
|
||||||
Provider<ContactTransferRejectFlow> contactTransferRejectFlowProvider,
|
|
||||||
Provider<ContactTransferRequestFlow> contactTransferRequestFlowProvider,
|
|
||||||
Provider<ContactUpdateFlow> contactUpdateFlowProvider,
|
|
||||||
Provider<ClaimsCheckFlow> claimsCheckFlowProvider,
|
|
||||||
Provider<DomainAllocateFlow> domainAllocateFlowProvider,
|
|
||||||
Provider<DomainApplicationCreateFlow> domainApplicationCreateFlowProvider,
|
|
||||||
Provider<DomainApplicationDeleteFlow> domainApplicationDeleteFlowProvider,
|
|
||||||
Provider<DomainApplicationInfoFlow> domainApplicationInfoFlowProvider,
|
|
||||||
Provider<DomainApplicationUpdateFlow> domainApplicationUpdateFlowProvider,
|
|
||||||
Provider<DomainCheckFlow> domainCheckFlowProvider,
|
|
||||||
Provider<DomainCreateFlow> domainCreateFlowProvider,
|
|
||||||
Provider<DomainDeleteFlow> domainDeleteFlowProvider,
|
|
||||||
Provider<DomainInfoFlow> domainInfoFlowProvider,
|
|
||||||
Provider<DomainRenewFlow> domainRenewFlowProvider,
|
|
||||||
Provider<DomainRestoreRequestFlow> domainRestoreRequestFlowProvider,
|
|
||||||
Provider<DomainTransferApproveFlow> domainTransferApproveFlowProvider,
|
|
||||||
Provider<DomainTransferCancelFlow> domainTransferCancelFlowProvider,
|
|
||||||
Provider<DomainTransferQueryFlow> domainTransferQueryFlowProvider,
|
|
||||||
Provider<DomainTransferRejectFlow> domainTransferRejectFlowProvider,
|
|
||||||
Provider<DomainTransferRequestFlow> domainTransferRequestFlowProvider,
|
|
||||||
Provider<DomainUpdateFlow> domainUpdateFlowProvider,
|
|
||||||
Provider<HostCheckFlow> hostCheckFlowProvider,
|
|
||||||
Provider<HostCreateFlow> hostCreateFlowProvider,
|
|
||||||
Provider<HostDeleteFlow> hostDeleteFlowProvider,
|
|
||||||
Provider<HostInfoFlow> hostInfoFlowProvider,
|
|
||||||
Provider<HostUpdateFlow> hostUpdateFlowProvider,
|
|
||||||
Provider<PollAckFlow> pollAckFlowProvider,
|
|
||||||
Provider<PollRequestFlow> pollRequestFlowProvider,
|
|
||||||
Provider<HelloFlow> helloFlowProvider,
|
|
||||||
Provider<LoginFlow> loginFlowProvider,
|
|
||||||
Provider<LogoutFlow> logoutFlowProvider) {
|
|
||||||
return new ImmutableMap.Builder<Class<? extends Flow>, Provider<? extends Flow>>()
|
|
||||||
.put(ContactCheckFlow.class, contactCheckFlowProvider)
|
|
||||||
.put(ContactCreateFlow.class, contactCreateFlowProvider)
|
|
||||||
.put(ContactDeleteFlow.class, contactDeleteFlowProvider)
|
|
||||||
.put(ContactInfoFlow.class, contactInfoFlowProvider)
|
|
||||||
.put(ContactTransferApproveFlow.class, contactTransferApproveFlowProvider)
|
|
||||||
.put(ContactTransferCancelFlow.class, contactTransferCancelFlowProvider)
|
|
||||||
.put(ContactTransferQueryFlow.class, contactTransferQueryFlowProvider)
|
|
||||||
.put(ContactTransferRejectFlow.class, contactTransferRejectFlowProvider)
|
|
||||||
.put(ContactTransferRequestFlow.class, contactTransferRequestFlowProvider)
|
|
||||||
.put(ContactUpdateFlow.class, contactUpdateFlowProvider)
|
|
||||||
.put(ClaimsCheckFlow.class, claimsCheckFlowProvider)
|
|
||||||
.put(DomainAllocateFlow.class, domainAllocateFlowProvider)
|
|
||||||
.put(DomainApplicationCreateFlow.class, domainApplicationCreateFlowProvider)
|
|
||||||
.put(DomainApplicationDeleteFlow.class, domainApplicationDeleteFlowProvider)
|
|
||||||
.put(DomainApplicationInfoFlow.class, domainApplicationInfoFlowProvider)
|
|
||||||
.put(DomainApplicationUpdateFlow.class, domainApplicationUpdateFlowProvider)
|
|
||||||
.put(DomainCheckFlow.class, domainCheckFlowProvider)
|
|
||||||
.put(DomainCreateFlow.class, domainCreateFlowProvider)
|
|
||||||
.put(DomainDeleteFlow.class, domainDeleteFlowProvider)
|
|
||||||
.put(DomainInfoFlow.class, domainInfoFlowProvider)
|
|
||||||
.put(DomainRenewFlow.class, domainRenewFlowProvider)
|
|
||||||
.put(DomainRestoreRequestFlow.class, domainRestoreRequestFlowProvider)
|
|
||||||
.put(DomainTransferApproveFlow.class, domainTransferApproveFlowProvider)
|
|
||||||
.put(DomainTransferCancelFlow.class, domainTransferCancelFlowProvider)
|
|
||||||
.put(DomainTransferQueryFlow.class, domainTransferQueryFlowProvider)
|
|
||||||
.put(DomainTransferRejectFlow.class, domainTransferRejectFlowProvider)
|
|
||||||
.put(DomainTransferRequestFlow.class, domainTransferRequestFlowProvider)
|
|
||||||
.put(DomainUpdateFlow.class, domainUpdateFlowProvider)
|
|
||||||
.put(HostCheckFlow.class, hostCheckFlowProvider)
|
|
||||||
.put(HostCreateFlow.class, hostCreateFlowProvider)
|
|
||||||
.put(HostDeleteFlow.class, hostDeleteFlowProvider)
|
|
||||||
.put(HostInfoFlow.class, hostInfoFlowProvider)
|
|
||||||
.put(HostUpdateFlow.class, hostUpdateFlowProvider)
|
|
||||||
.put(PollAckFlow.class, pollAckFlowProvider)
|
|
||||||
.put(PollRequestFlow.class, pollRequestFlowProvider)
|
|
||||||
.put(HelloFlow.class, helloFlowProvider)
|
|
||||||
.put(LoginFlow.class, loginFlowProvider)
|
|
||||||
.put(LogoutFlow.class, logoutFlowProvider)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@FlowScope
|
@FlowScope
|
||||||
static Class<? extends Flow> provideFlowClass(EppInput eppInput) {
|
static Class<? extends Flow> provideFlowClass(EppInput eppInput) {
|
||||||
|
@ -293,14 +167,6 @@ public class FlowModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@FlowScope
|
|
||||||
static Flow provideFlow(
|
|
||||||
Map<Class<? extends Flow>, Provider<? extends Flow>> flowProviders,
|
|
||||||
Class<? extends Flow> flowClass) {
|
|
||||||
return flowProviders.get(flowClass).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Wrapper class to carry an {@link EppException} to the calling code. */
|
/** Wrapper class to carry an {@link EppException} to the calling code. */
|
||||||
static class EppExceptionInProviderException extends RuntimeException {
|
static class EppExceptionInProviderException extends RuntimeException {
|
||||||
EppExceptionInProviderException(EppException exception) {
|
EppExceptionInProviderException(EppException exception) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue