package org.webpieces.router.impl.params; import java.util.ArrayList; import java.util.List; public class ArrayNode extends ParamNode { private List<ParamNode> nodes = new ArrayList<>(); public ParamTreeNode setOrGetTree(int arrayIndex) { expandArrayIfNeeded(arrayIndex); ParamNode paramNode = nodes.get(arrayIndex); if(paramNode != null) return (ParamTreeNode) paramNode; ParamTreeNode treeNode = new ParamTreeNode(); nodes.set(arrayIndex, treeNode); return treeNode; } private void expandArrayIfNeeded(int arrayIndex) { if(arrayIndex >= nodes.size()) { for(int i = nodes.size(); i < arrayIndex+1; i++) nodes.add(null); } } public void setElement(int arrayIndex, ValueNode valueNode) { expandArrayIfNeeded(arrayIndex); nodes.set(arrayIndex, valueNode); } public List<ParamNode> getList() { return nodes; } }