package de.zalando.toga.generator.dimensions; import com.fasterxml.jackson.databind.JsonNode; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class EnumDimension extends Dimension { public EnumDimension(String name, JsonNode node) { super(name); generateValues(node); } private void generateValues(JsonNode node) { JsonNode enumNode = node.get("enum"); List<String> enumValues = new ArrayList<>(); enumNode.elements().forEachRemaining(element -> enumValues.add(element.asText())); JsonNode includeEmpty = node.path("includeNull"); if (!includeEmpty.isMissingNode() && includeEmpty.asBoolean()) { values.add(null); } JsonNode countNode = node.get("exampleCount"); int exampleCount = enumValues.size(); if (countNode != null) { exampleCount = countNode.asInt(); } for (int i = 0; i < exampleCount; i++) { values.add(enumValues.get(i % enumValues.size())); } JsonNode randomizeNode = node.path("randomize"); if (!randomizeNode.isMissingNode() && randomizeNode.asBoolean()) { Collections.shuffle(values); } } }