
Java.Configuration.mustache Maven / Gradle / Ivy
The newest version!
{{>licenseInfo}}
package {{invokerPackage}};
import java.util.Objects;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;
{{>generatedAnnotation}}
public class Configuration {
public static final String VERSION = "{{{artifactVersion}}}";
private static final AtomicReference defaultApiClient = new AtomicReference<>();
private static volatile Supplier apiClientFactory = ApiClient::new;
/**
* Get the default API client, which would be used when creating API instances without providing an API client.
*
* @return Default API client
*/
public static ApiClient getDefaultApiClient() {
ApiClient client = defaultApiClient.get();
if (client == null) {
client = defaultApiClient.updateAndGet(val -> {
if (val != null) { // changed by another thread
return val;
}
return apiClientFactory.get();
});
}
return client;
}
/**
* Set the default API client, which would be used when creating API instances without providing an API client.
*
* @param apiClient API client
*/
public static void setDefaultApiClient(ApiClient apiClient) {
defaultApiClient.set(apiClient);
}
/**
* set the callback used to create new ApiClient objects
*/
public static void setApiClientFactory(Supplier factory) {
apiClientFactory = Objects.requireNonNull(factory);
}
private Configuration() {
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy