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()));
     }
 }