package org.mafagafogigante.dungeon.schema.rules; import org.mafagafogigante.dungeon.schema.JsonRule; import com.eclipsesource.json.JsonArray; import com.eclipsesource.json.JsonValue; import java.util.ArrayList; import java.util.List; class FixedArrayJsonRule extends ArrayJsonRule { private final List<JsonRule> rules; FixedArrayJsonRule(List<JsonRule> rules) { this.rules = new ArrayList<>(rules); } @Override public void validate(JsonValue value) { super.validate(value); JsonArray array = value.asArray(); if (rules.size() != array.size()) { throw new IllegalArgumentException("Array is not of the right size."); } for (int i = 0; i < rules.size(); i++) { rules.get(i).validate(array.values().get(i)); } } }