package grid;

import position.Position;

/**
 * A grid csomagban hozzuk létre a nyilvános Grid interfészt. Az interfészen
 * belül deklaráljuk a következő metódusokat: isValid, get, set
 * @param <T> egy típusparamétert vár
 */
public interface Grid<T> {

	/**
	 * Egy isValid metódus.
	 * @param p egy Position-t vár paraméterül
	 * @return logikai értéket ad vissza
	 */
	boolean isValid(Position p);

	/**
	 * Egy get metódus.
	 * @param p egy Position-t vár paraméterül
	 * @return a típusparaméternek megfelelő objektumot ad vissza
	 */
	T get(Position p);

	/**
	 * Egy set metódus.
	 * @param p paraméterül vár egy Position-t
	 * @param t és egy, a típusparaméternek megfelelő objektumot
	 * @noreturn nincs visszatérési értéke
	 */
	void set(Position p, T t);
}
