public final function SetEntityMap(IEntityMap $EntityMap = null) { $this->EntityMap = $EntityMap; if ($EntityMap !== null) { $this->Accessor->SetEntityType($EntityMap->GetEntityType()); $this->Identifier = $this->Accessor->GetIdentifier(); } }
private function AddAccessor(Accessors\Accessor $NewAccessor) { if ($this->Accessor === null) { $this->Accessor = $NewAccessor; } else { if (!$this->Accessor instanceof Accessors\Traversing) { $this->Accessor = new Accessors\Traversing([$this->Accessor, $NewAccessor]); } else { $this->Accessor = new Accessors\Traversing(array_merge($this->Accessor->GetNestedAccessors(), [$NewAccessor])); } } }
private function SetterAccessorsMatch(Accessor $Accessor, Accessor $OtherAccessor, &$MatchedAccessorType = null) { if ($Accessor->GetSetterIdentifier() === $OtherAccessor->GetSetterIdentifier()) { $MatchedAccessorType = self::PropertiesAreSetters; return true; } return false; }
public final function SetValue($Entity, $Value) { $TraversedValue = $this->GetTraversedValue($Entity); $this->FinalAccessor->SetEntityType(get_class($TraversedValue)); $this->FinalAccessor->SetValue($TraversedValue, $Value); }