package tc.oc.api.queue;
import java.util.List;
import java.util.stream.Collectors;
import javax.inject.Inject;
import com.rabbitmq.client.Address;
import tc.oc.minecraft.api.configuration.Configuration;
import tc.oc.minecraft.api.configuration.ConfigurationSection;
import static com.google.common.base.Preconditions.checkNotNull;
public class QueueClientConfigurationImpl implements QueueClientConfiguration {
public static final String SECTION = "queue";
public static final String NETWORK_RECOVERY_INTERVAL_PATH = "network-recovery-interval";
public static final String CONNECTION_TIMEOUT_PATH = "connection-timeout";
public static final String VIRTUAL_HOST_PATH = "virtual-host";
public static final String THREADS_PATH = "threads";
public static final String PASSWORD_PATH = "password";
public static final String USERNAME_PATH = "username";
public static final String ADDRESSES_PATH = "addresses";
private final ConfigurationSection config;
@Inject public QueueClientConfigurationImpl(Configuration config) {
this.config = checkNotNull(config.getSection(SECTION));
}
@Override
public List<Address> getAddresses() {
return config.getStringList(ADDRESSES_PATH).stream().map(Address::new).collect(Collectors.toList());
}
@Override
public String getUsername() {
return config.getString(USERNAME_PATH);
}
@Override
public String getPassword() {
return config.getString(PASSWORD_PATH);
}
@Override
public String getVirtualHost() {
return config.getString(VIRTUAL_HOST_PATH);
}
@Override
public int getConnectionTimeout() {
return config.getInt(CONNECTION_TIMEOUT_PATH);
}
@Override
public int getNetworkRecoveryInterval() {
return config.getInt(NETWORK_RECOVERY_INTERVAL_PATH);
}
@Override
public int getThreads() {
return config.getInt(THREADS_PATH);
}
}