All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testcontainers.utility.DefaultImageNameSubstitutor Maven / Gradle / Ivy

There is a newer version: 1.20.4
Show newest version
package org.testcontainers.utility;

import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;

/**
 * Testcontainers' default implementation of {@link ImageNameSubstitutor}.
 * Delegates to {@link ConfigurationFileImageNameSubstitutor} followed by {@link PrefixingImageNameSubstitutor}.
 */
@Slf4j
final class DefaultImageNameSubstitutor extends ImageNameSubstitutor {

    private final ConfigurationFileImageNameSubstitutor configurationFileImageNameSubstitutor;

    private final PrefixingImageNameSubstitutor prefixingImageNameSubstitutor;

    public DefaultImageNameSubstitutor() {
        configurationFileImageNameSubstitutor = new ConfigurationFileImageNameSubstitutor();
        prefixingImageNameSubstitutor = new PrefixingImageNameSubstitutor();
    }

    @VisibleForTesting
    DefaultImageNameSubstitutor(
        final ConfigurationFileImageNameSubstitutor configurationFileImageNameSubstitutor,
        final PrefixingImageNameSubstitutor prefixingImageNameSubstitutor
    ) {
        this.configurationFileImageNameSubstitutor = configurationFileImageNameSubstitutor;
        this.prefixingImageNameSubstitutor = prefixingImageNameSubstitutor;
    }

    @Override
    public DockerImageName apply(final DockerImageName original) {
        return configurationFileImageNameSubstitutor.andThen(prefixingImageNameSubstitutor).apply(original);
    }

    @Override
    protected String getDescription() {
        return (
            "DefaultImageNameSubstitutor (composite of '" +
            configurationFileImageNameSubstitutor.getDescription() +
            "' and '" +
            prefixingImageNameSubstitutor.getDescription() +
            "')"
        );
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy