<?php
namespace Main\DisplayStuff;

require_once 'Object.php';

use \Main\Object;	// Import class from Main namespace

// Can't instantiate object from an abstract class
// should contain an abstract method.
abstract class DisplayList extends Object
{
	// Attributes
	private $_data;
	
	// Constructor
	public function __construct(array $data)	// Provide hint, constructor requires an array
	{
		$this->_data = $data;
	}
	
	// Methods for properties
	// Getters and Setters
	public function GetData()
	{
		return $this->_data;
	}
	
	// Methods
	
	public function Add($item)
	{
		$this->_data[] = $item;
	}
	
	public function Remove($item)
	{
		$key = array_search($item, $this->_data);
		if($key)
		{
			unset($this->_data[$key]);
		}
	}
	
	// Abstract method, don't define code here
	abstract public function Show();
}

?>