package org.drools.grid.services.factory;
import org.drools.grid.services.configuration.GenericProvider;
import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
import org.drools.grid.services.configuration.RioProvider;
public class GenericProviderContainerFactoryHelper {
public static <T> T doOnGenericProvider(GenericProvider provider,
GenericProviderContainerBuilder<T> builder) {
switch ( provider.getProviderType() ) {
case Local : {
return builder.onLocalProvider( (LocalProvider) provider );
}
case RemoteMina : {
return builder.onMinaProvider( (MinaProvider) provider );
}
case RemoteHornetQ : {
return builder.onHornetQProvider();
}
case DistributedRio : {
return builder.onRioProvider( (RioProvider) provider );
}
}
throw new IllegalArgumentException( "Unmatcheable provider " + provider.getProviderType().name() );
}
}