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

org.testcontainers.images.builder.dockerfile.statement.KeyValuesStatement Maven / Gradle / Ivy

There is a newer version: 1.20.1
Show newest version
package org.testcontainers.images.builder.dockerfile.statement;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class KeyValuesStatement extends Statement {

    private static final ObjectMapper objectMapper = new ObjectMapper();

    protected final Map entries;

    public KeyValuesStatement(String type, Map entries) {
        super(type);
        this.entries = entries;
    }

    @Override
    public void appendArguments(StringBuilder dockerfileStringBuilder) {
        Set> entries = this.entries.entrySet();

        Iterator> iterator = entries.iterator();

        while (iterator.hasNext()) {
            Map.Entry entry = iterator.next();

            try {
                dockerfileStringBuilder.append(objectMapper.writeValueAsString(entry.getKey()));
                dockerfileStringBuilder.append("=");
                dockerfileStringBuilder.append(objectMapper.writeValueAsString(entry.getValue()));
            } catch (JsonProcessingException e) {
                throw new RuntimeException("Can't serialize entry: " + entry, e);
            }

            if (iterator.hasNext()) {
                dockerfileStringBuilder.append(" \\\n\t");
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy