package uk.org.squirm3.model.level.validators; import java.util.Collection; import java.util.LinkedList; import uk.org.squirm3.model.Atom; import uk.org.squirm3.model.level.AtomSelector; import uk.org.squirm3.model.level.AtomValidator; import uk.org.squirm3.model.level.LevelMessages; import uk.org.squirm3.model.type.def.BasicType; public class ConnectCornersValidator implements AtomValidator { private Atom upperLeftCorner; private Atom bottomRightCorner; @Override public void setup(final Collection<? extends Atom> atoms) { upperLeftCorner = AtomSelector.findUnique(BasicType.A, 1, atoms); bottomRightCorner = AtomSelector.findUnique(BasicType.F, 1, atoms); } @Override public String evaluate(final Collection<? extends Atom> atoms, final LevelMessages messages) { final LinkedList<Atom> joined = new LinkedList<Atom>(); upperLeftCorner.getAllConnectedAtoms(joined); if (!joined.contains(bottomRightCorner)) { return messages.getError(1); } return null; } }