/** * @param AbstractTypedAddress $address */ public function updateAddressTypes(AbstractTypedAddress $address) { $addressTypes = $address->getTypes(); foreach ($addressTypes as $index => $type) { $addressTypes->set($index, $this->updateAddressType($type->getName())); } }
public function testIsEmpty() { $this->assertTrue($this->address->isEmpty()); $this->address->setPrimary(true); $this->assertFalse($this->address->isEmpty()); $this->address->setPrimary(false); $this->address->addType(new AddressType('billing')); $this->assertFalse($this->address->isEmpty()); }
/** * @param AbstractTypedAddress $localAddress * @param AbstractTypedAddress $remoteAddress */ public function mergeAddressTypes(AbstractTypedAddress $localAddress, AbstractTypedAddress $remoteAddress) { $newAddressTypes = array_diff($remoteAddress->getTypeNames(), $localAddress->getTypeNames()); $deletedAddressTypes = array_diff($localAddress->getTypeNames(), $remoteAddress->getTypeNames()); foreach ($deletedAddressTypes as $addressType) { $localAddress->removeType($localAddress->getTypeByName($addressType)); } foreach ($newAddressTypes as $addressType) { $localAddress->addType($remoteAddress->getTypeByName($addressType)); } }
/** * Only one address must be primary. * * @param AbstractTypedAddress $address * @param AbstractTypedAddress[] $allAddresses */ protected function handlePrimary(AbstractTypedAddress $address, $allAddresses) { if ($address->isPrimary()) { /** @var AbstractTypedAddress[] $allAddresses */ foreach ($allAddresses as $otherAddresses) { $otherAddresses->setPrimary(false); } $address->setPrimary(true); } elseif (count($allAddresses) == 1) { $address->setPrimary(true); } }
/** * Two addresses must not have same types * * @param AbstractTypedAddress $address * @param AbstractTypedAddress[] $allAddresses */ protected function handleType(AbstractTypedAddress $address, $allAddresses) { $types = $address->getTypes()->toArray(); if (count($types)) { foreach ($allAddresses as $otherAddresses) { foreach ($types as $type) { $otherAddresses->removeType($type); } } foreach ($types as $type) { $address->addType($type); } } }
/** * Constructor * * The real implementation of this method is auto generated. * * IMPORTANT: If the derived class has own constructor it must call parent constructor. */ public function __construct() { parent::__construct(); }