/**
  * {@inheritDoc}
  */
 public function checkSignature(ReflectionClass $class, array $parameters)
 {
     $propertyName = 'signature' . $this->signatureGenerator->generateSignatureKey($parameters);
     $signature = $this->signatureGenerator->generateSignature($parameters);
     $defaultProperties = $class->getDefaultProperties();
     if (!isset($defaultProperties[$propertyName])) {
         throw MissingSignatureException::fromMissingSignature($class, $parameters, $signature);
     }
     if ($defaultProperties[$propertyName] !== $signature) {
         throw InvalidSignatureException::fromInvalidSignature($class, $parameters, $defaultProperties[$propertyName], $signature);
     }
 }
 /**
  * {@inheritDoc}
  *
  * @throws \Zend\Code\Exception\InvalidArgumentException
  */
 public function addSignature(ClassGenerator $classGenerator, array $parameters) : ClassGenerator
 {
     $classGenerator->addPropertyFromGenerator(new PropertyGenerator('signature' . $this->signatureGenerator->generateSignatureKey($parameters), $this->signatureGenerator->generateSignature($parameters), PropertyGenerator::FLAG_STATIC | PropertyGenerator::FLAG_PRIVATE));
     return $classGenerator;
 }