function IsbndbNlmCitationSchemaFilter($apiKey = null)
 {
     if (!is_null($apiKey)) {
         $this->setData('apiKey', $apiKey);
     }
     // Instantiate the settings of this filter
     $apiKeySetting = new FilterSetting('apiKey', 'metadata.filters.isbndb.settings.apiKey.displayName', 'metadata.filters.isbndb.settings.apiKey.validationMessage');
     $this->addSetting($apiKeySetting);
     parent::NlmCitationSchemaFilter(null, array(NLM_PUBLICATION_TYPE_BOOK));
 }
 function ParaciteRawCitationNlmCitationSchemaFilter($citationModule = CITATION_PARSER_PARACITE_STANDARD)
 {
     $this->setDisplayName('ParaCite');
     assert(in_array($citationModule, ParaciteRawCitationNlmCitationSchemaFilter::getSupportedCitationModules()));
     $this->setData('citationModule', $citationModule);
     // Instantiate the settings of this filter
     $citationModuleSetting = new SetFilterSetting('citationModule', 'metadata.filters.paracite.settings.citationModule.displayName', 'metadata.filters.paracite.settings.citationModule.validationMessage', ParaciteRawCitationNlmCitationSchemaFilter::getSupportedCitationModules());
     $this->addSetting($citationModuleSetting);
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_PARSE);
 }
 /**
  * Constructor
  * @param $apiKey string
  */
 function WorldcatNlmCitationSchemaFilter($apiKey = null)
 {
     $this->setDisplayName('WorldCat');
     if (!is_null($apiKey)) {
         $this->setData('apiKey', $apiKey);
     }
     // Instantiate the settings of this filter
     $apiKeySetting = new FilterSetting('apiKey', 'metadata.filters.worldcat.settings.apiKey.displayName', 'metadata.filters.worldcat.settings.apiKey.validationMessage', FORM_VALIDATOR_OPTIONAL_VALUE);
     $this->addSetting($apiKeySetting);
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_LOOKUP, array(NLM_PUBLICATION_TYPE_BOOK));
 }
 /**
  * Constructor
  * @param $email string
  */
 function CrossrefNlmCitationSchemaFilter($email = null)
 {
     $this->setDisplayName('CrossRef');
     if (!is_null($email)) {
         $this->setEmail($email);
     }
     // Instantiate the settings of this filter
     $emailSetting = new EmailFilterSetting('email', 'metadata.filters.crossref.settings.email.displayName', 'metadata.filters.crossref.settings.email.validationMessage');
     $this->addSetting($emailSetting);
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_LOOKUP, array(NLM_PUBLICATION_TYPE_JOURNAL, NLM_PUBLICATION_TYPE_CONFPROC, NLM_PUBLICATION_TYPE_BOOK, NLM_PUBLICATION_TYPE_THESIS));
 }
 /**
  * Constructor
  * @param $email string the pubmed registration email
  */
 function PubmedNlmCitationSchemaFilter($email = null)
 {
     $this->setDisplayName('PubMed');
     if (!is_null($email)) {
         $this->setData('email', $email);
     }
     // Instantiate the settings of this filter
     $emailSetting = new EmailFilterSetting('email', 'metadata.filters.pubmed.settings.email.displayName', 'metadata.filters.pubmed.settings.email.validationMessage', FORM_VALIDATOR_OPTIONAL_VALUE);
     $this->addSetting($emailSetting);
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_LOOKUP, array(NLM_PUBLICATION_TYPE_JOURNAL, NLM_PUBLICATION_TYPE_CONFPROC));
 }
 /**
  * @see Filter::supports()
  * @param $input mixed
  * @param $output mixed
  * @return boolean
  */
 function supports(&$input, &$output)
 {
     return parent::supports($input, $output, true);
 }
 /**
  * Constructor
  * @param $email string FIXME: This could be PKP's technical
  *  contact email as it is only used to report technical problems
  *  with the query.
  */
 function PubmedNlmCitationSchemaFilter($email = null)
 {
     assert(is_null($email) || is_string($email));
     $this->_email = $email;
     parent::NlmCitationSchemaFilter(array(NLM_PUBLICATION_TYPE_JOURNAL, NLM_PUBLICATION_TYPE_CONFPROC));
 }
 function RegexRawCitationNlmCitationSchemaFilter()
 {
     $this->setDisplayName('RegEx');
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_PARSE);
 }
 /**
  * Constructor
  * @param $apiKey string
  */
 function WorldcatNlmCitationSchemaFilter($apiKey = '')
 {
     $this->_apiKey = $apiKey;
     parent::NlmCitationSchemaFilter(array(NLM_PUBLICATION_TYPE_BOOK));
 }
 function ParscitRawCitationNlmCitationSchemaFilter()
 {
     $this->setDisplayName('ParsCit');
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_PARSE);
 }
 function FreeciteRawCitationNlmCitationSchemaFilter()
 {
     $this->setDisplayName('FreeCite');
     parent::NlmCitationSchemaFilter(NLM_CITATION_FILTER_PARSE);
 }
 function IsbndbNlmCitationSchemaFilter($apiKey)
 {
     assert(!empty($apiKey));
     $this->_apiKey = $apiKey;
     parent::NlmCitationSchemaFilter(array(NLM_PUBLICATION_TYPE_BOOK));
 }
 function CrossrefNlmCitationSchemaFilter($email)
 {
     assert(!empty($email));
     $this->_email = $email;
     parent::NlmCitationSchemaFilter(array(NLM_PUBLICATION_TYPE_JOURNAL, NLM_PUBLICATION_TYPE_CONFPROC, NLM_PUBLICATION_TYPE_BOOK, NLM_PUBLICATION_TYPE_THESIS));
 }