示例#1
0
 /**
  * {@inheritdoc}
  *
  * @throws InvalidMARCspecException
  */
 public function addSubfields($subfields)
 {
     if ($subfields instanceof SubfieldInterface) {
         $this->subfields[] = $subfields;
     } else {
         $this->checkIfString($subfields);
         if (2 > strlen($subfields)) {
             throw new InvalidMARCspecException(InvalidMARCspecException::SF . InvalidMARCspecException::LENGTH . InvalidSubfieldspecException::MINIMUM2, $subfields);
         }
         if ('$' !== $subfields[0]) {
             throw new InvalidMARCspecException(InvalidMARCspecException::SF . InvalidSubfieldspecException::PREFIX, $subfields);
         }
         $parser = new MARCspecParser();
         $_subfieldSpecs = $parser->matchSubfields($subfields);
         foreach ($_subfieldSpecs as $subfieldSpec) {
             $this->addSubfield($subfieldSpec);
         }
     }
 }