Skip to content

Instantly share code, notes, and snippets.

@TomHAnderson
Created June 21, 2013 17:17
Show Gist options
  • Save TomHAnderson/5832767 to your computer and use it in GitHub Desktop.
Save TomHAnderson/5832767 to your computer and use it in GitHub Desktop.
Simple entity w/ getArrayCopy & ExchangeArray with associations
<?php
namespace DbLoadCd\Entity;
use Zend\Form\Annotation as Form;
use Zend\InputFilter\InputFilter;
use Doctrine\ORM\Event\LifecycleEventArgs;
/**
* @Form\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty")
* @Form\Name("test")
*/
class Test
{
use Field\Id;
use Field\Name;
use Field\Purpose;
use Field\EstimatedCompletionDate;
use Field\Version;
use Field\TestSetup;
use Field\Note;
use Field\Description;
use Field\TestVersion;
use Field\StartDate;
use Field\EndDate;
use Field\RequestDate;
use Field\CompletionDate;
use Field\FirstDataReceivedTimestamp;
use Field\LastDataReceivedTimestamp;
use Field\DevelopmentBuild;
use Field\Invalid;
use Field\InvalidComment;
use Field\InvalidTimestamp;
use Field\ProcedureValidationRequired;
use Field\SetupValidationRequired;
use Field\Project;
use Field\TestStatus;
use Field\TestType;
use Field\TestResult;
use Field\Owner;
use Field\Operator;
use Relation\Artifacts;
use Relation\TestRuns;
use Relation\Users;
use Relation\RelatedTests;
use Relation\Equipment;
use Relation\Protocols;
public function __toString()
{
return $this->getName();
}
public function getArrayCopy()
{
return [
// Fields
'id' => $this->getId(),
'name' => $this->getName(),
'purpose' => $this->getPurpose(),
'estimatedCompletionDate' => $this->getEstimatedCompletionDate(),
'version' => $this->getVersion(),
'testSetup' => $this->getTestSetup(),
'note' => $this->getNote(),
'description' => $this->getDescription(),
'testVersion' => $this->getTestVersion(),
'startDate' => $this->getStartDate(),
'endDate' => $this->getEndDate(),
'requestDate' => $this->getRequestDate(),
'completionDate' => $this->getCompletionDate(),
'firstDataReceivedTimestamp' => $this->getFirstDataReceivedTimestamp(),
'lastDataReceivedTimestamp' => $this->getLastDataReceivedTimestamp(),
'developmentBuild' => $this->getDevelopmentBuild(),
'invalid' => $this->getInvalid(),
'invalidComment' => $this->getInvalidComment(),
'invalidTimestamp' => $this->getInvalidTimestamp(),
'procedureValidationRequired' => $this->getProcedureValidationRequired(),
'setupValidationRequired' => $this->getSetupValidationRequired(),
// Associations
'project' => $this->getProject(),
'testStatus' => $this->getTestStatus(),
'testType' => $this->getTestType(),
'testResult' => $this->getTestResult(),
'owner' => $this->getOwner(),
'operator' => $this->getOperator(),
];
}
public function exchangeArray($data)
{
// Fields
$this->setName(isset($data['name']) ? $data['name']: null);
$this->setPurpose(isset($data['purpose']) ? $data['purpose']: null);
$this->setEstimatedCompletionDate(isset($data['estimatedCompletionDate']) ? $data['estimatedCompletionDate']: null);
$this->setVersion(isset($data['version']) ? $data['version']: null);
$this->setTestSetup(isset($data['testSetup']) ? $data['testSetup']: null);
$this->setNote(isset($data['note']) ? $data['note']: null);
$this->setDescription(isset($data['description']) ? $data['description']: null);
$this->setTestVersion(isset($data['testVersion']) ? $data['testVersion']: null);
$this->setStartDate(isset($data['startDate']) ? $data['startDate']: null);
$this->setEndDate(isset($data['endDate']) ? $data['endDate']: null);
$this->setRequestDate(isset($data['requestDate']) ? $data['requestDate']: null);
$this->setCompletionDate(isset($data['completionDate']) ? $data['completionDate']: null);
$this->setFirstDataReceivedTimestamp(isset($data['firstDataReceivedTimestamp']) ? $data['firstDataReceivedTimestamp']: null);
$this->setLastDataReceivedTimestamp(isset($data['lastDataReceivedTimestamp']) ? $data['lastDataReceivedTimestamp']: null);
$this->setDevelopmentBuild(isset($data['developmentBuild']) ? $data['developmentBuild']: null);
$this->setInvalid(isset($data['invalid']) ? $data['invalid']: null);
$this->setInvalidComment(isset($data['invalidComment']) ? $data['invalidComment']: null);
$this->setInvalidTimestamp(isset($data['invalidTimestamp']) ? $data['invalidTimestamp']: null);
$this->setProcedureValidationRequired(isset($data['procedureValidationRequired']) ? $data['procedureValidationRequired']: null);
$this->setSetupValidationRequired(isset($data['setupValidationRequired']) ? $data['setupValidationRequired']: null);
// Associations
$this->setProject(isset($data['project']) ? $data['project']: null);
$this->setTestStatus(isset($data['testStatus']) ? $data['testStatus']: null);
$this->setTestType(isset($data['testType']) ? $data['testType']: null);
$this->setTestResult(isset($data['testResult']) ? $data['testResult']: null);
$this->setOwner(isset($data['owner']) ? $data['owner']: null);
$this->setOperator(isset($data['operator']) ? $data['operator']: null);
}
public function getInputFilter()
{
$inputFilter = new InputFilter();
$inputFilter->add($this->inputFilterInputName($inputFilter));
$inputFilter->add($this->inputFilterInputPurpose($inputFilter));
$inputFilter->add($this->inputFilterInputEstimatedCompletionDate($inputFilter));
$inputFilter->add($this->inputFilterInputVersion($inputFilter));
$inputFilter->add($this->inputFilterInputTestSetup($inputFilter));
$inputFilter->add($this->inputFilterInputNote($inputFilter));
$inputFilter->add($this->inputFilterInputDescription($inputFilter));
$inputFilter->add($this->inputFilterInputTestVersion($inputFilter));
$inputFilter->add($this->inputFilterInputStartDate($inputFilter));
$inputFilter->add($this->inputFilterInputEndDate($inputFilter));
$inputFilter->add($this->inputFilterInputRequestDate($inputFilter));
$inputFilter->add($this->inputFilterInputCompletionDate($inputFilter));
$inputFilter->add($this->inputFilterInputFirstDataReceivedTimestamp($inputFilter));
$inputFilter->add($this->inputFilterInputLastDataReceivedTimestamp($inputFilter));
$inputFilter->add($this->inputFilterInputDevelopmentBuild($inputFilter));
$inputFilter->add($this->inputFilterInputInvalid($inputFilter));
$inputFilter->add($this->inputFilterInputInvalidComment($inputFilter));
$inputFilter->add($this->inputFilterInputInvalidTimestamp($inputFilter));
$inputFilter->add($this->inputFilterInputProcedureValidationRequired($inputFilter));
$inputFilter->add($this->inputFilterInputSetupValidationRequired($inputFilter));
$inputFilter->add($this->inputFilterInputTestStatus($inputFilter));
$inputFilter->add($this->inputFilterInputTestType($inputFilter));
$inputFilter->add($this->inputFilterInputTestResult($inputFilter));
$inputFilter->add($this->inputFilterInputOwner($inputFilter));
$inputFilter->add($this->inputFilterInputOperator($inputFilter));
return $inputFilter;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment