package com.xenoage.zong.musiclayout.spacing; import static com.xenoage.zong.core.position.MP.atMeasure; import java.util.Iterator; import java.util.List; import com.xenoage.zong.utils.exceptions.IllegalMPException; import lombok.AllArgsConstructor; /** * A list of {@link FrameSpacing}s. * * @author Andreas Wenger */ @AllArgsConstructor public class FramesSpacing implements Iterable<FrameSpacing> { private List<FrameSpacing> frames; public int size() { return frames.size(); } public FrameSpacing get(int index) { return frames.get(index); } public FrameSpacing getFrame(int measure) { for (FrameSpacing frame : frames) { if (measure <= frame.getEndMeasure()) return frame; } throw new IllegalMPException(atMeasure(measure)); } public ColumnSpacing getColumn(int measure) { return getFrame(measure).getColumn(measure); } @Override public Iterator<FrameSpacing> iterator() { return frames.iterator(); } }