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);
}
}
}