package de.edu.hsfulda.ciip.tdd; import java.util.List; public class StateDead implements State { private static final int REQUIRED_FOR_CHANGE = 3; @Override public State nextBy(List neigborStates) { long alifeNeigbors = countAliveNeighbors(neigborStates); return findNextStateBy(alifeNeigbors); } private State findNextStateBy(long alifeNeigbors) { if (REQUIRED_FOR_CHANGE == alifeNeigbors) return this; else return this; } private long countAliveNeighbors(List neigborStates) { return neigborStates.stream().filter(state -> this != state).count(); } }