/**
  * @return BaseInputFilter
  */
 public function getInputFilter()
 {
     if (!$this->inputFilter) {
         $inputFilter = parent::getInputFilter();
         $factory = new InputFactory();
         $inputFilter->add($factory->createInput(array('name' => 'cases', 'required' => true, 'validators' => array(array('name' => 'Callback', 'options' => array('messages' => array(Callback::INVALID_VALUE => 'This person needs an attached case', Callback::INVALID_CALLBACK => "An error occurred in the validation"), 'callback' => function () {
             return $this->hasAttachedCase();
         }))))));
         $this->inputFilter->merge($inputFilter);
     }
     return $this->inputFilter;
 }
 public function __construct()
 {
     parent::__construct();
     $this->systemStatus = false;
 }
 /**
  * @param AttorneyAbstract $attorney
  * @return ArrayCollection
  */
 public function findAttorney(AttorneyAbstract $attorney)
 {
     $this->initAttorneys();
     return $this->attorneys->filter(function ($item) use($attorney) {
         if ('' !== $attorney->getDobString()) {
             return $item->getTitle() === $attorney->getTitle() && $item->getFirstname() === $attorney->getFirstname() && $item->getMiddleName() === $attorney->getMiddlename() && $item->getSurname() === $attorney->getSurname() && $item->getDobString() === $attorney->getDobString();
         } else {
             return $item->getTitle() === $attorney->getTitle() && $item->getFirstname() === $attorney->getFirstname() && $item->getMiddleName() === $attorney->getMiddlename() && $item->getSurname() === $attorney->getSurname();
         }
     });
 }