package com.vladmihalcea.flexypool.connection;
/**
* <code>ConnectionRequestContext</code> stores all info required for retrieving one connection and data
* generated during any attempt for getting such connection.
*
* @author Vlad Mihalcea
* @since 1.0
*/
public final class ConnectionRequestContext {
/**
* Factory for creating ConnectionRequestContext instances.
*/
public static class Builder {
private Credentials credentials;
public Builder setCredentials(Credentials credentials) {
this.credentials = credentials;
return this;
}
public ConnectionRequestContext build() {
return new ConnectionRequestContext(
credentials
);
}
}
private final Credentials credentials;
private int retryAttempts;
private ConnectionRequestContext(Credentials credentials) {
this.credentials = credentials;
}
/**
* Get current connection credentials
*
* @return connection credentials
*/
public Credentials getCredentials() {
return credentials;
}
/**
* Get current connection retry attempts
*
* @return current connection retry attempts
*/
public int getRetryAttempts() {
return retryAttempts;
}
/**
* Increment the retry attempts number
*/
public void incrementAttempts() {
this.retryAttempts++;
}
@Override
public String toString() {
return "ConnectionRequestContext{" +
"credentials=" + credentials +
", retryAttempts=" + retryAttempts +
'}';
}
}