@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; } }