/**
  * Parses the signature.
  *
  * @return boolean True if successful.
  */
 public function parseSignature()
 {
     $parsed = false;
     $sig = $this->get('signature');
     if ($sig != null) {
         $parsedSig = xPDOTransport::parseSignature($sig);
         if (count($parsedSig) === 2 && !empty($parsedSig[0]) && !empty($parsedSig[1])) {
             $this->identifier = $parsedSig[0];
             $parsedVersion = explode('-', $parsedSig[1], 2);
             if (count($parsedVersion) === 2) {
                 $this->version = $parsedVersion[0];
                 $releaseChars = array();
                 parse_str($parsedVersion[1], $releaseChars);
                 $release = '';
                 $releaseIndex = '';
                 $char = reset($releaseChars);
                 while ($char !== false && !is_numeric($char)) {
                     $release .= $char;
                     $char = next($releaseChars);
                 }
                 while ($char !== false && is_numeric($char)) {
                     $releaseIndex .= $char;
                 }
                 $this->release = $release;
                 $this->release_index = (int) $releaseIndex;
                 $parsed = true;
             } elseif (count($parsedVersion) === 1) {
                 $this->version = $parsedVersion[0];
                 $this->release = '';
                 $this->release_index = 0;
                 $parsed = true;
             }
             list($this->version_major, $this->version_minor, $this->version_patch) = explode('.', $this->version);
         }
     }
     return $parsed;
 }
 /**
  * Parses the signature.
  *
  * @access public
  * @return boolean True if successful.
  */
 public function parseSignature()
 {
     $parsed = false;
     $sig = $this->get('signature');
     if ($sig != NULL) {
         $parsedSig = xPDOTransport::parseSignature($sig);
         if (count($parsedSig) === 2 && !empty($parsedSig[0]) && !empty($parsedSig[1])) {
             $this->identifier = $parsedSig[0];
             $parsedVersion = explode('-', $parsedSig[1], 2);
             if (count($parsedVersion) === 2) {
                 $this->version = $parsedVersion[0];
                 $this->release = $parsedVersion[1];
                 $parsed = true;
             } elseif (count($parsedVersion) === 1) {
                 $this->version = $parsedVersion[0];
                 $this->release = '';
                 $parsed = true;
             }
         }
     }
     return $parsed;
 }