2 namespace Workspace\UseCase;
7 * Basic input requirement handler used for service contracts.
14 * @var \Repo\Field\Collector
20 protected $requiredFields = array();
24 protected $inputFields = array();
28 * Initialize requirement.
29 * @return \Workspace\UseCase\Requirement
31 public function __construct()
33 $this->collector = new \Repo\Field\Collector();
37 * Add required input(s).
38 * @param string|array $input
39 * @return \Workspace\UseCase\Requirement
41 public function addRequiredInput($input)
43 $newStack = $this->collector->collect($input);
44 foreach ($newStack as $group => $fieldSet)
46 isset($this->requiredFields[$group])
47 || $this->requiredFields[$group] = array();
48 isset($this->inputFields[$group])
49 || $this->inputFields[$group] = array();
50 foreach ($fieldSet as $field => $validation)
52 $this->requiredFields[$group][$field] = $field;
54 $this->inputFields[$group] = array_merge($this->inputFields[$group], $fieldSet);
60 * Add optional input(s).
61 * @param string|array $input
62 * @return \Workspace\UseCase\Requirement
64 public function addOptionalInput($input)
66 $newStack = $this->collector->collect($input);
67 foreach ($newStack as $group => $fieldSet)
69 isset($this->inputFields[$group])
70 || $this->inputFields[$group] = array();
71 $this->inputFields[$group] = array_merge($this->inputFields[$group], $fieldSet);
77 * Retrieve shortlist of required inputs.
80 public function getRequirements()
82 return $this->requiredFields;
86 * Retrieve list of all inputs.
89 public function getInputs()
91 return $this->inputFields;