<?php
namespace Main\CompositePattern;

require_once 'Object.php';

use \Main\Object;

abstract class AbstractWorker extends Object
{	
	// Attributes
	
	// Constructor
	
	// Methods for properties
	// Getters and Setters
	public function GetIterator()
	{
		return new NullWorkGroupIterator();
	}
	
	public function GetGroup()
	{
		// Not a workgroup, so return null
		// to indicate this a single worker.
		// i.e. not a composite object.
		return null;
	}
		
	// Methods
	
	abstract public function CalculateCost($hoursWorked);
}
?>