/**
  * Constructor
  */
 function __construct($assocType, $filterMode = PERSON_STRING_FILTER_SINGLE, $filterTitle = false, $filterDegrees = false)
 {
     $this->setDisplayName('String to NLM Name Schema conversion');
     assert(in_array($assocType, array(ASSOC_TYPE_AUTHOR, ASSOC_TYPE_EDITOR)));
     $this->_assocType = $assocType;
     $this->_filterTitle = $filterTitle;
     $this->_filterDegrees = $filterDegrees;
     $inputType = 'primitive::string';
     $outputType = 'metadata::lib.pkp.plugins.metadata.nlm30.schema.Nlm30NameSchema(*)';
     if ($filterMode == PERSON_STRING_FILTER_MULTIPLE) {
         $outputType .= '[]';
     }
     parent::__construct($inputType, $outputType, $filterMode);
 }
 /**
  * Constructor
  * @param $filterMode integer
  * @param $template string default: DRIVER guidelines 2.0 name template
  *  Possible template variables are %surname%, %suffix%, %prefix%, %initials%, %firstname%
  */
 function __construct($filterMode = PERSON_STRING_FILTER_SINGLE, $template = '%surname%%suffix%,%initials% (%firstname%)%prefix%', $delimiter = '; ')
 {
     $this->setDisplayName('NLM Name Schema to string conversion');
     assert(!empty($template) && is_string($template));
     $this->_template = $template;
     assert(is_string($delimiter));
     $this->_delimiter = $delimiter;
     $inputType = 'metadata::lib.pkp.plugins.metadata.nlm30.schema.Nlm30NameSchema(*)';
     $outputType = 'primitive::string';
     if ($filterMode == PERSON_STRING_FILTER_MULTIPLE) {
         $inputType .= '[]';
     }
     parent::__construct($inputType, $outputType, $filterMode);
 }