Esempio n. 1
0
  @Override
  protected StoredDocumentList process(DocumentQuery query) {
    String q = queryConverter.convert(query.getQuery());

    try {
      URI uri =
          new URI(
              "http",
              "www.mendeley.com",
              "/oapi/documents/search/" + q,
              "consumer_key=" + CONSUMER_KEY + "&items=" + MAX_RESULTS,
              null);
      String json = getNet().read(uri, "UTF-8");
      MendeleySearchResult searchResult = gson.fromJson(json, MendeleySearchResult.class);

      if (searchResult != null) {
        Filter filter = new Filter(query);
        StoredDocumentList result = new StoredDocumentList();
        MendeleyDoc[] documents = searchResult.getDocuments();
        if (documents != null) {
          for (MendeleyDoc md : documents) {
            Document document = new TextDocument();
            document.setTitle(md.getTitle());
            document.setYear(md.getYear());
            document.addDetailURL(new URL(md.getMendeleyUrl()));
            document.setFieldValue(Field.DOI, md.getDoi());
            PersonList pl = new PersonList();
            pl.add(new Person(md.getAuthors()));
            document.setAuthorList(pl);

            if (filter.check(document)) {
              StoredDocument stored = new StoredDocument(document);
              stored.addSource(new SourceInfo(SOURCE_ID, md.getUuid()));
              result.add(stored);
            }
          }
        }
        return result;
      } else {
        return null;
      }

    } catch (IOException e) {
      logger.error(e.getMessage(), e);
      return null;
    } catch (JsonParseException e) {
      logger.error(e.getMessage(), e);
      return null;
    } catch (URISyntaxException e) {
      logger.error(e.getMessage(), e);
      return null;
    }
  }