/**
  * Validate metric type and default metric unit
  *
  * @param AbstractAttribute $entity
  * @param Constraint        $constraint
  */
 public function validate($entity, Constraint $constraint)
 {
     if ($entity instanceof AbstractAttribute) {
         $familyProperty = 'metricFamily';
         $unitProperty = 'defaultMetricUnit';
     } else {
         if (null === $entity || null !== $entity && !$entity->getData()) {
             return;
         }
         $familyProperty = 'family';
         $unitProperty = 'unit';
     }
     $family = $this->propertyAccessor->getValue($entity, $familyProperty);
     $unit = $this->propertyAccessor->getValue($entity, $unitProperty);
     if (!array_key_exists($family, $this->measures)) {
         $this->context->addViolationAt($familyProperty, $constraint->familyMessage);
     } elseif (!array_key_exists($unit, $this->measures[$family]['units'])) {
         $this->context->addViolationAt($unitProperty, $constraint->unitMessage);
     }
 }