* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Grid\Column; use Countable; use Iterator; /** * Interface ColumnCollectionInterface defines contract for grid column collection. */ interface ColumnCollectionInterface extends Iterator, Countable { /** * Add column to collection. * * @param ColumnInterface $column * * @return static */ public function add(ColumnInterface $column); /** * Add column after given column. * * @param string $id Column id * @param ColumnInterface $column * * @return static */ public function addAfter($id, ColumnInterface $column); /** * @param string $id Column id * @param ColumnInterface $column * * @return static */ public function addBefore($id, ColumnInterface $column); /** * Remove column from collection. * * @param string $id * * @return static */ public function remove($id); /** * Get columns as array. * * @return array */ public function toArray(); }