public function validate(Result $result, Package $package) { try { $this->validateSenderAddress($package->getSenderAddress()); } catch (ViolationException $e) { $result->addViolation(new Violation($e->getMessage())); } try { $this->validateRecipientAddress($package->getRecipientAddress()); } catch (ViolationException $e) { $result->addViolation(new Violation($e->getMessage())); } try { $this->validateMaximumDimension($package); } catch (ViolationException $e) { $result->addViolation(new Violation($e->getMessage())); } try { $this->validateMaximumPerimeter($package); } catch (ViolationException $e) { $result->addViolation(new Violation($e->getMessage())); } try { $this->validateWeight($package); } catch (ViolationException $e) { $result->addViolation(new Violation($e->getMessage())); } }