Revision 54287
Added by Sandro La Bruzzo over 5 years ago
DataciteOfflineResolver.java | ||
---|---|---|
7 | 7 |
import com.mongodb.client.FindIterable; |
8 | 8 |
import com.mongodb.client.MongoCollection; |
9 | 9 |
import com.mongodb.client.model.Filters; |
10 |
import eu.dnetlib.dli.resolver.model.CompletionStatus; |
|
10 | 11 |
import eu.dnetlib.dli.resolver.model.DLIObjectProvenance; |
11 | 12 |
import eu.dnetlib.dli.resolver.model.DLIResolvedObject; |
12 | 13 |
import eu.dnetlib.enabling.tools.DnetStreamSupport; |
... | ... | |
16 | 17 |
import org.apache.commons.logging.Log; |
17 | 18 |
import org.apache.commons.logging.LogFactory; |
18 | 19 |
import org.bson.Document; |
20 |
import org.springframework.beans.factory.annotation.Required; |
|
19 | 21 |
import org.springframework.beans.factory.annotation.Value; |
20 | 22 |
|
21 | 23 |
|
22 | 24 |
import java.util.List; |
25 |
import java.util.Objects; |
|
23 | 26 |
import java.util.stream.Collectors; |
24 | 27 |
|
25 | 28 |
|
... | ... | |
55 | 58 |
return parseResponse(result); |
56 | 59 |
} |
57 | 60 |
} catch (Throwable e) { |
58 |
log.error("Error on getting item with Pid: " + pid); |
|
61 |
log.error("Error on getting item with Pid: " + pid, e);
|
|
59 | 62 |
} |
60 | 63 |
return null; |
61 | 64 |
} |
... | ... | |
78 | 81 |
dli.setSubjects( |
79 | 82 |
DnetStreamSupport.generateStreamFromIterator(root.getAsJsonArray("subjects").iterator()) |
80 | 83 |
.map(JsonElement::getAsJsonObject) |
81 |
.map(it -> new SubjectType(it.get("scheme").getAsString(), it.get("term").getAsString())) |
|
84 |
.map(this::createSubjectType) |
|
85 |
.filter(Objects::nonNull) |
|
82 | 86 |
.collect(Collectors.toList()) |
83 | 87 |
); |
84 | 88 |
} |
85 |
dli.setDatasourceProvenance( |
|
86 |
DnetStreamSupport.generateStreamFromIterator(root.getAsJsonArray("datasourceProvenance").iterator()) |
|
87 |
.map(JsonElement::getAsJsonObject) |
|
88 |
.map(it -> { |
|
89 |
final DLIObjectProvenance provenance =new DLIObjectProvenance(); |
|
90 |
provenance.setDatasourceId(it.get("datasourceId").getAsString()); |
|
91 |
provenance.setCompletionStatus(it.get("completionStatus").getAsString()); |
|
92 |
provenance.setProvisionMode(it.get("provisionMode").getAsString()); |
|
93 |
provenance.setDatasource(it.get("datasource").getAsString()); |
|
94 |
provenance.setPublisher(getStringValue(it, "publisher")); |
|
95 |
return provenance; |
|
96 |
}) |
|
97 |
.collect(Collectors.toList()) |
|
98 |
); |
|
89 |
dli.setDatasourceProvenance(A); |
|
90 |
dli.setCompletionStatus(CompletionStatus.complete.toString()); |
|
99 | 91 |
return dli; |
100 | 92 |
} |
101 | 93 |
|
94 |
private SubjectType createSubjectType(final JsonObject item){ |
|
95 |
if (item.has("term") && !item.get("term").isJsonNull()) |
|
96 |
return new SubjectType(item.get("scheme").getAsString(), item.get("term").getAsString()); |
|
97 |
else { |
|
98 |
return null; |
|
99 |
} |
|
100 |
} |
|
101 |
|
|
102 | 102 |
private List<String> getStringValues(final JsonObject root, final String key) { |
103 | 103 |
|
104 | 104 |
if (root.has(key) && root.get(key).isJsonArray()) { |
... | ... | |
127 | 127 |
|
128 | 128 |
} |
129 | 129 |
|
130 |
|
|
130 |
@Required |
|
131 | 131 |
public void setMongoClient(final MongoClient client) { |
132 | 132 |
this.client = client; |
133 | 133 |
} |
Also available in: Unified diff
added Crossref Event Data