Project

General

Profile

« Previous | Next » 

Revision 46876

cleanup, added method to search among apis

View differences:

MongoLoggerClient.java
1 1
package eu.dnetlib.datasource.publisher.clients;
2 2

  
3 3
import java.util.List;
4
import java.util.function.Function;
5
import java.util.stream.Collectors;
4 6

  
5
import com.google.common.base.Function;
6
import com.google.common.base.Predicate;
7
import com.google.common.collect.Iterables;
8
import com.google.common.collect.Lists;
9 7
import com.google.common.primitives.Ints;
10 8
import com.mongodb.BasicDBObject;
11 9
import com.mongodb.MongoClient;
12
import com.mongodb.client.FindIterable;
13 10
import com.mongodb.client.MongoCollection;
14 11
import com.mongodb.client.model.Projections;
15 12
import eu.dnetlib.datasource.publisher.ApiException;
16 13
import eu.dnetlib.datasource.publisher.clients.utils.DatasourceFunctions;
17 14
import eu.dnetlib.datasource.publisher.model.*;
15
import eu.dnetlib.datasource.publisher.utils.Utils;
18 16
import eu.dnetlib.miscutils.datetime.DateUtils;
19 17
import org.apache.commons.lang.StringUtils;
20 18
import org.apache.commons.lang.time.DateFormatUtils;
......
26 24
import org.springframework.beans.factory.annotation.Value;
27 25
import org.springframework.cache.annotation.Cacheable;
28 26

  
29
import static com.mongodb.client.model.Filters.*;
27
import static com.mongodb.client.model.Filters.and;
28
import static com.mongodb.client.model.Filters.eq;
30 29

  
31

  
32

  
33 30
/**
34 31
 * Created by claudio on 20/10/2016.
35 32
 */
......
72 69

  
73 70
		final Bson query = getQuery(dsId);
74 71

  
75
		final FindIterable<Document> iterable = getCollection().find(query).projection(fields).limit(limit).sort(dbo("system:startHumanDate", -1));
76
		final Iterable<AggregationInfo> transform = Iterables.transform(iterable, new Function<Document, AggregationInfo>() {
72
		return Utils.stream(getCollection().find(query).projection(fields).limit(limit).sort(dbo("system:startHumanDate", -1)).iterator())
73
				.map(getMapper())
74
				.filter(ai -> ai.getNumberOfRecords() >= 0 && StringUtils.isNotBlank(ai.getDate()))
75
				.collect(Collectors.toList());
76
	}
77 77

  
78
	private Function<Document, AggregationInfo> getMapper() {
79
		return new java.util.function.Function<Document, AggregationInfo>() {
80

  
78 81
			@Override
79 82
			public AggregationInfo apply(final Document d) {
80 83

  
......
122 125
					return -1;
123 126
				}
124 127
			}
125
		});
126

  
127
		final Iterable<AggregationInfo> filter = Iterables.filter(transform, new Predicate<AggregationInfo>() {
128
			@Override
129
			public boolean apply(final AggregationInfo ai) {
130
				return ai.getNumberOfRecords() >= 0 && StringUtils.isNotBlank(ai.getDate());
131
			}
132
		});
133

  
134
		return Lists.newArrayList(filter);
128
		};
135 129
	}
136 130

  
137 131
	private static Bson getFields() {

Also available in: Unified diff